From d4f2d47802620859e86a2ba81b11e6affdebdcd3 Mon Sep 17 00:00:00 2001 From: Jan Turk Date: Sat, 13 May 2023 21:26:23 +0200 Subject: [PATCH 01/27] Update EIP-6454: Update EIP-6454 with note about approvals Merged by EIP-Bot. --- EIPS/eip-6454.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/EIPS/eip-6454.md b/EIPS/eip-6454.md index 2dc17ad1e600a8..10140dd1015ef0 100644 --- a/EIPS/eip-6454.md +++ b/EIPS/eip-6454.md @@ -58,6 +58,8 @@ interface IERC6454 /* is IERC165 */ { * @dev If this function returns `false`, the transfer of the token MUST revert execution. * @dev If the tokenId does not exist, this method MUST revert execution, unless the token is being checked for * minting. + * @dev The `from` parameter MAY be used to also validate the approval of the token for transfer, but anyone + * interacting with this function SHOULD NOT rely on it as it is not mandated by the proposal. * @param tokenId ID of the token being checked * @param from Address from which the token is being transferred * @param to Address to which the token is being transferred @@ -77,6 +79,8 @@ In order to determine whether a token is mintable, the exception SHOULD be made In order to determine whether a token is burnable, the `from` parameter SHOULD NOT be `0x0000000000000000000000000000000000000000` and the `to` parameter SHOULD be `0x0000000000000000000000000000000000000000`. +Implementers MAY choose to validate the approval of the token for transfer by the `from` parameter, but anyone interacting with this function SHOULD NOT rely on it as it is not mandated by the proposal. This means that the `from` parameter in such implementations validates the initiator of the transaction rather than the owner from which the token is being transferred (which can either be the owner of the token or the operator allowed to transfer the token). + ## Rationale Designing the proposal, we considered the following questions: @@ -95,6 +99,10 @@ Designing the proposal, we considered the following questions: 6. **What is the best user experience for frontend?**\ The best user experience for the front end is having a single method that checks whether the token is transferable. This method should handle both cases of transferability, general and conditional.\ The front end should also be able to handle the case where the token is not transferable and the transfer is attempted. This can be done by checking the return value of the transfer function, which will be false if the token is not transferable. If the token would just be set as non-transferable, without a standardized interface to check whether the token is transferable, the only way to validate transferability would be to attempt a gas calculation and check whether the transaction would revert. This is a bad user experience and should be avoided. +7. **Should we mandate that the `isTransferable` validates approvals as well?**\ + We considered specifying that the `from` parameter represents the initiator of the token transfer. This would mean that the `from` would validate whether the address is the owner of the token or approved to transfer it. While this might be beneficial, we ultimately decided to make it optional.\ + As this proposal aims to be the minimal possible implementation and the approvals are already standardized, we feel that `isTransferable` can be used in conjunction with the approvals to validate whether the given address can initiate the transfer or not.\ + Additionally, mandating the validation of approvals would incur higher gas consumption as additional checks would be required to validate the transferability. ## Backwards Compatibility From 84f61365d2de098ec6a1e954dbdc064026a192d4 Mon Sep 17 00:00:00 2001 From: g11tech Date: Mon, 15 May 2023 15:30:19 +0530 Subject: [PATCH 02/27] Update EIP-4844: Decouple blobs Merged by EIP-Bot. --- EIPS/eip-4844.md | 69 ++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 34 deletions(-) diff --git a/EIPS/eip-4844.md b/EIPS/eip-4844.md index 14e0cd64263a0d..54c5f641789514 100644 --- a/EIPS/eip-4844.md +++ b/EIPS/eip-4844.md @@ -53,7 +53,7 @@ Compared to full data sharding, this EIP has a reduced cap on the number of thes | `MAX_CALLDATA_SIZE` | `2**24` | | `MAX_ACCESS_LIST_SIZE` | `2**24` | | `MAX_ACCESS_LIST_STORAGE_KEYS` | `2**24` | -| `MAX_TX_WRAP_KZG_COMMITMENTS` | `2**12` | +| `MAX_TX_WRAP_COMMITMENTS` | `2**12` | | `LIMIT_BLOBS_PER_TX` | `2**12` | | `DATA_GAS_PER_BLOB` | `2**17` | | `HASH_OPCODE_BYTE` | `Bytes1(0x49)` | @@ -71,18 +71,18 @@ Compared to full data sharding, this EIP has a reduced cap on the number of thes ### Cryptographic Helpers -Throughout this proposal we use cryptographic methods and classes defined in the corresponding [consensus 4844 specs](https://github.com/ethereum/consensus-specs/blob/23d3aeebba3b5da0df4bd25108461b442199f406/specs/eip4844). +Throughout this proposal we use cryptographic methods and classes defined in the corresponding [consensus 4844 specs](https://github.com/ethereum/consensus-specs/blob/86fb82b221474cc89387fa6436806507b3849d88/specs/deneb). -Specifically, we use the following methods from [`polynomial-commitments.md`](https://github.com/ethereum/consensus-specs/blob/23d3aeebba3b5da0df4bd25108461b442199f406/specs/eip4844/polynomial-commitments.md): +Specifically, we use the following methods from [`polynomial-commitments.md`](https://github.com/ethereum/consensus-specs/blob/86fb82b221474cc89387fa6436806507b3849d88/specs/deneb/polynomial-commitments.md): -- [`verify_kzg_proof()`](https://github.com/ethereum/consensus-specs/blob/23d3aeebba3b5da0df4bd25108461b442199f406/specs/eip4844/polynomial-commitments.md#verify_kzg_proof) -- [`verify_aggregate_kzg_proof()`](https://github.com/ethereum/consensus-specs/blob/23d3aeebba3b5da0df4bd25108461b442199f406/specs/eip4844/polynomial-commitments.md#verify_aggregate_kzg_proof) +- [`verify_kzg_proof()`](https://github.com/ethereum/consensus-specs/blob/86fb82b221474cc89387fa6436806507b3849d88/specs/deneb/polynomial-commitments.md#verify_kzg_proof) +- [`verify_blob_kzg_proof_batch()`](https://github.com/ethereum/consensus-specs/blob/86fb82b221474cc89387fa6436806507b3849d88/specs/deneb/polynomial-commitments.md#verify_blob_kzg_proof_batch) ### Helpers ```python -def kzg_to_versioned_hash(kzg: KZGCommitment) -> VersionedHash: - return BLOB_COMMITMENT_VERSION_KZG + sha256(kzg)[1:] +def kzg_to_versioned_hash(commitment: KZGCommitment) -> VersionedHash: + return BLOB_COMMITMENT_VERSION_KZG + sha256(commitment)[1:] ``` Approximates `factor * e ** (numerator / denominator)` using Taylor expansion: @@ -121,7 +121,7 @@ class BlobTransaction(Container): data: ByteList[MAX_CALLDATA_SIZE] access_list: List[AccessTuple, MAX_ACCESS_LIST_SIZE] max_fee_per_data_gas: uint256 - blob_versioned_hashes: List[VersionedHash, MAX_VERSIONED_HASHES_LIST_SIZE] + versioned_hashes: List[VersionedHash, MAX_VERSIONED_HASHES_LIST_SIZE] class AccessTuple(Container): address: Address # Bytes20 @@ -150,15 +150,15 @@ The `TransactionNetworkPayload` wraps a `TransactionPayload` with additional dat this wrapping data SHOULD be verified directly before or after signature verification. When a blob transaction is passed through the network (see the [Networking](#networking) section below), -the `TransactionNetworkPayload` version of the transaction also includes `blobs` and `kzgs` (commitments list). +the `TransactionNetworkPayload` version of the transaction also includes `blobs`, `commitments` and `proofs`. The execution layer verifies the wrapper validity against the inner `TransactionPayload` after signature verification as: -- `blob_versioned_hashes` must not be empty -- All hashes in `blob_versioned_hashes` must start with the byte `BLOB_COMMITMENT_VERSION_KZG` +- `versioned_hashes` must not be empty +- All hashes in `versioned_hashes` must start with the byte `BLOB_COMMITMENT_VERSION_KZG` - There may be at most `MAX_DATA_GAS_PER_BLOCK // DATA_GAS_PER_BLOB` total blob commitments in a valid block. -- There is an equal amount of versioned hashes, kzg commitments and blobs. -- The KZG commitments hash to the versioned hashes, i.e. `kzg_to_versioned_hash(kzg[i]) == versioned_hash[i]` -- The KZG commitments match the blob contents. (Note: this can be optimized with additional data, using a proof for a +- There is an equal amount of versioned hashes, commitments, blobs and proofs. +- The commitments hash to the versioned hashes, i.e. `kzg_to_versioned_hash(commitment[i]) == versioned_hash[i]` +- The commitments match the blob contents. (Note: this can be optimized with additional data, using a proof for a random evaluation at two points derived from the commitment and blob data) @@ -182,7 +182,7 @@ def signed_tx_hash(tx: SignedBlobTransaction) -> Bytes32: return keccak256(BLOB_TX_TYPE + ssz.serialize(tx)) ``` -Blob transactions with empty `blob_versioned_hashes` are also considered invalid during execution block verification, and must not be included in a valid block. +Blob transactions with empty `versioned_hashes` are also considered invalid during execution block verification, and must not be included in a valid block. ### Header extension @@ -231,7 +231,7 @@ For the first post-fork block, `parent.excess_data_gas` is evaluated as `0`. ### Beacon chain validation On the consensus-layer the blobs are now referenced, but not fully encoded, in the beacon block body. -Instead of embedding the full contents in the body, the contents of the blobs are propagated separately, as a "sidecar". +Instead of embedding the full contents in the body, the blobs are propagated separately, as a "sidecar". This "sidecar" design provides forward compatibility for further data increases by black-boxing `is_data_available()`: with full sharding `is_data_available()` can be replaced by data-availability-sampling (DAS) thus avoiding all blobs being downloaded by all beacon nodes on the network. @@ -247,8 +247,8 @@ The `ethereum/consensus-specs` repository defines the following beacon-node chan ### Opcode to get versioned hashes We add an opcode `DATAHASH` (with byte value `HASH_OPCODE_BYTE`) which reads `index` from the top of the stack -as big-endian `uint256`, and replaces it on the stack with `tx.message.blob_versioned_hashes[index]` -if `index < len(tx.message.blob_versioned_hashes)`, and otherwise with a zeroed `bytes32` value. +as big-endian `uint256`, and replaces it on the stack with `tx.message.versioned_hashes[index]` +if `index < len(tx.message.versioned_hashes)`, and otherwise with a zeroed `bytes32` value. The opcode has a gas cost of `HASH_OPCODE_GAS`. ### Point evaluation precompile @@ -270,13 +270,13 @@ def point_evaluation_precompile(input: Bytes) -> Bytes: z = input[32:64] y = input[64:96] commitment = input[96:144] - kzg_proof = input[144:192] + proof = input[144:192] # Verify commitment matches versioned_hash assert kzg_to_versioned_hash(commitment) == versioned_hash # Verify KZG proof - assert verify_kzg_proof(commitment, z, y, kzg_proof) + assert verify_kzg_proof(commitment, z, y, proof) # Return FIELD_ELEMENTS_PER_BLOB and BLS_MODULUS as padded 32 byte big endian values return Bytes(U256(FIELD_ELEMENTS_PER_BLOB).to_be_bytes32() + U256(BLS_MODULUS).to_be_bytes32()) @@ -294,7 +294,7 @@ def calc_data_fee(tx: SignedBlobTransaction, parent: Header) -> int: return get_total_data_gas(tx) * get_data_gasprice(parent) def get_total_data_gas(tx: SignedBlobTransaction) -> int: - return DATA_GAS_PER_BLOB * len(tx.message.blob_versioned_hashes) + return DATA_GAS_PER_BLOB * len(tx.message.versioned_hashes) def get_data_gasprice(header: Header) -> int: return fake_exponential( @@ -320,7 +320,7 @@ def validate_block(block: Block) -> None: # ensure that the user was willing to at least pay the current data gasprice assert tx.message.max_fee_per_data_gas >= get_data_gasprice(parent(block).header) - num_blobs += len(tx.message.blob_versioned_hashes) + num_blobs += len(tx.message.versioned_hashes) # check that the excess data gas is correct expected_edg = calc_excess_data_gas(parent(block).header, num_blobs) @@ -341,26 +341,27 @@ the payload is a SSZ encoded container: class BlobTransactionNetworkWrapper(Container): tx: SignedBlobTransaction # KZGCommitment = Bytes48 - blob_kzgs: List[KZGCommitment, MAX_TX_WRAP_KZG_COMMITMENTS] + commitments: List[KZGCommitment, MAX_TX_WRAP_COMMITMENTS] # BLSFieldElement = uint256 blobs: List[Vector[BLSFieldElement, FIELD_ELEMENTS_PER_BLOB], LIMIT_BLOBS_PER_TX] # KZGProof = Bytes48 - kzg_aggregated_proof: KZGProof + proofs: List[KZGProof, MAX_TX_WRAP_COMMITMENTS] ``` We do network-level validation of `BlobTransactionNetworkWrapper` objects as follows: ```python def validate_blob_transaction_wrapper(wrapper: BlobTransactionNetworkWrapper): - versioned_hashes = wrapper.tx.message.blob_versioned_hashes - commitments = wrapper.blob_kzgs + versioned_hashes = wrapper.tx.message.versioned_hashes + commitments = wrapper.commitments blobs = wrapper.blobs + proofs = wrapper.proofs # note: assert blobs are not malformatted - assert len(versioned_hashes) == len(commitments) == len(blobs) + assert len(versioned_hashes) == len(commitments) == len(blobs) == len(proofs) assert len(versioned_hashes) > 0 - # Verify that commitments match the blobs by checking the KZG proof - assert verify_aggregate_kzg_proof(blobs, commitments, wrapper.kzg_aggregated_proof) + # Verify that commitments match the blobs by checking the KZG proofs + assert verify_blob_kzg_proof_batch(blobs, commitments, proofs) # Now that all commitments have been verified, check that versioned_hashes matches the commitments for versioned_hash, commitment in zip(versioned_hashes, commitments): @@ -399,7 +400,7 @@ The work that is already done in this EIP includes: The work that remains to be done to get to full sharding includes: -- A low-degree extension of the `blob_kzgs` in the consensus layer to allow 2D sampling +- A low-degree extension of the `commitments` in the consensus layer to allow 2D sampling - An actual implementation of data availability sampling - PBS (proposer/builder separation), to avoid requiring individual validators to process 32 MB of data in one slot - Proof of custody or similar in-protocol requirement for each validator to verify a particular part of the sharded data in each block @@ -422,13 +423,13 @@ For each value it would provide a KZG proof and use the point evaluation precomp and then perform the fraud proof verification on that data as is done today. ZK rollups would provide two commitments to their transaction or state delta data: -the kzg in the blob and some commitment using whatever proof system the ZK rollup uses internally. -They would use a commitment proof of equivalence protocol, using the point evaluation precompile, -to prove that the kzg (which the protocol ensures points to available data) and the ZK rollup's own commitment refer to the same data. +the blob commitment (which the protocol ensures points to available data) and the ZK rollup's own commitment using whatever proof system the rollup uses internally. +They would use a proof of equivalence protocol, using the point evaluation precompile, +to prove that the two commitments refer to the same data. ### Versioned hashes & precompile return data -We use versioned hashes (rather than kzgs) as references to blobs in the execution layer to ensure forward compatibility with future changes. +We use versioned hashes (rather than commitments) as references to blobs in the execution layer to ensure forward compatibility with future changes. For example, if we need to switch to Merkle trees + STARKs for quantum-safety reasons, then we would add a new version, allowing the point evaluation precompile to work with the new format. Rollups would not have to make any EVM-level changes to how they work; From 14093465c3c839e3fa8c80cc73542161cc260f9f Mon Sep 17 00:00:00 2001 From: rotcivegaf Date: Mon, 15 May 2023 12:36:48 -0300 Subject: [PATCH 03/27] Update EIP-4973: [Lint] Add and fix blacks(\n) (#7025) * fix lint * fix EIP Walidator workflow * fix EIP Walidator workflow * fix * fix --- EIPS/eip-4973.md | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/EIPS/eip-4973.md b/EIPS/eip-4973.md index 7a8f4e89cc1b9b..9ddb3bc5efddc6 100644 --- a/EIPS/eip-4973.md +++ b/EIPS/eip-4973.md @@ -39,12 +39,12 @@ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "S ABTs _must_ implement the interfaces: -- [EIP-165](./eip-165.md)'s `ERC165` (`0x01ffc9a7`) -- [EIP-721](./eip-721.md)'s `ERC721Metadata` (`0x5b5e139f`) +- [ERC-165](./eip-165.md)'s `ERC165` (`0x01ffc9a7`) +- [ERC-721](./eip-721.md)'s `ERC721Metadata` (`0x5b5e139f`) ABTs _must not_ implement the interfaces: -- [EIP-721](./eip-721.md)'s `ERC721` (`0x80ac58cd`) +- [ERC-721](./eip-721.md)'s `ERC721` (`0x80ac58cd`) An ABT receiver must be able to always call `function unequip(address _tokenId)` to take their ABT off-chain. @@ -62,19 +62,21 @@ interface IERC4973 { event Transfer( address indexed from, address indexed to, uint256 indexed tokenId ); + /// @notice Count all ABTs assigned to an owner /// @dev ABTs assigned to the zero address are considered invalid, and this /// function throws for queries about the zero address. /// @param owner An address for whom to query the balance /// @return The number of ABTs owned by `address owner`, possibly zero - function balanceOf(address owner) external view returns (uint256); + /// @notice Find the address bound to an ERC4973 account-bound token /// @dev ABTs assigned to zero address are considered invalid, and queries /// about them do throw. /// @param tokenId The identifier for an ABT. /// @return The address of the owner bound to the ABT. function ownerOf(uint256 tokenId) external view returns (address); + /// @notice Removes the `uint256 tokenId` from an account. At any time, an /// ABT receiver must be able to disassociate themselves from an ABT /// publicly through calling this function. After successfully executing this @@ -84,6 +86,7 @@ interface IERC4973 { /// the zero address. /// @param tokenId The identifier for an ABT. function unequip(uint256 tokenId) external; + /// @notice Creates and transfers the ownership of an ABT from the /// transaction's `msg.sender` to `address to`. /// @dev Throws unless `bytes signature` represents a signature of the @@ -107,6 +110,7 @@ interface IERC4973 { function give(address to, bytes calldata metadata, bytes calldata signature) external returns (uint256); + /// @notice Creates and transfers the ownership of an ABT from an /// `address from` to the transaction's `msg.sender`. /// @dev Throws unless `bytes signature` represents a signature of the @@ -126,11 +130,13 @@ interface IERC4973 { /// @param signature A signature of the EIP-712 structured data hash /// `Agreement(address active,address passive,bytes metadata)` signed by /// `address from`. + /// @return A unique `uint256 tokenId` generated by type-casting the `bytes32` /// EIP-712 structured data hash to a `uint256`. function take(address from, bytes calldata metadata, bytes calldata signature) external returns (uint256); + /// @notice Decodes the opaque metadata bytestring of an ABT into the token /// URI that will be associated with it once it is created on chain. /// @param metadata The metadata that will be associated to an ABT. @@ -139,11 +145,11 @@ interface IERC4973 { } ``` -See [EIP-721](./eip-721.md) for a definition of its metadata JSON Schema. +See [ERC-721](./eip-721.md) for a definition of its metadata JSON Schema. ### [EIP-712](./eip-712.md) Typed Structured Data Hashing and Bytearray Signature Creation -To invoke `function give(...)` and `function take(...)` a bytearray signature must be created using [EIP-712](./eip-712.md). A tested reference implementation in Node.js is attached at [../assets/eip-4973/sdk/src/index.mjs](../assets/eip-4973/sdk/src/index.mjs), [../assets/eip-4973/sdk/test/index_test.mjs](../assets/eip-4973/sdk/test/index_test.mjs) and [../assets/eip-4973/package.json](../assets/eip-4973/package.json). In Solidity, this bytearray signature can be created as follows: +To invoke `function give(...)` and `function take(...)` a bytearray signature must be created using [EIP-712](./eip-712.md). A tested reference implementation in Node.js is attached at [index.mjs](../assets/eip-4973/sdk/src/index.mjs), [index_test.mjs](../assets/eip-4973/sdk/test/index_test.mjs) and [package.json](../assets/eip-4973/package.json). In Solidity, this bytearray signature can be created as follows: ```solidity bytes32 r = 0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90; @@ -158,13 +164,13 @@ bytes memory signature = abi.encodePacked(r, s, v); ABTs shall be maximally backward-compatible but still only expose a minimal and simple to implement interface definition. -As [EIP-721](./eip-721.md) tokens have seen widespread adoption with wallet providers and marketplaces, using its `ERC721Metadata` interface with [EIP-165](./eip-165.md) for feature-detection potentially allows implementers to support ABTs out of the box. +As [ERC-721](./eip-721.md) tokens have seen widespread adoption with wallet providers and marketplaces, using its `ERC721Metadata` interface with [ERC-165](./eip-165.md) for feature-detection potentially allows implementers to support ABTs out of the box. -If an implementer of [EIP-721](./eip-721.md) properly built [EIP-165](./eip-165.md)'s `function supportsInterface(bytes4 interfaceID)` function, already by recognizing that [EIP-721](./eip-721.md)'s track and transfer interface component with the identifier `0x80ac58cd` is not implemented, transferring of a token should not be suggested as a user interface option. +If an implementer of [ERC-721](./eip-721.md) properly built [ERC-165](./eip-165.md)'s `function supportsInterface(bytes4 interfaceID)` function, already by recognizing that [ERC-721](./eip-721.md)'s track and transfer interface component with the identifier `0x80ac58cd` is not implemented, transferring of a token should not be suggested as a user interface option. -Still, since ABTs support [EIP-721](./eip-721.md)'s `ERC721Metadata` extension, wallets and marketplaces should display an account-bound token with no changes needed. +Still, since ABTs support [ERC-721](./eip-721.md)'s `ERC721Metadata` extension, wallets and marketplaces should display an account-bound token with no changes needed. -Although other implementations of account-bound tokens are possible, e.g., by having all transfer functions revert, ABTs are superior as it supports feature detection through [EIP-165](./eip-165.md). +Although other implementations of account-bound tokens are possible, e.g., by having all transfer functions revert, ABTs are superior as it supports feature detection through [ERC-165](./eip-165.md). We expose `function unequip(address _tokenId)` and require it to be callable at any time by an ABT's owner as it ensures an owner's right to publicly disassociate themselves from what has been issued towards their account. @@ -178,15 +184,15 @@ In cases where implementers want to make account-bound tokens shareable among di ### Provenance Indexing -ABTs can be indexed by tracking the emission of `event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)`. As with [EIP-721](./eip-721.md), transfers between two accounts are represented by `address from` and `address to` being non-zero addresses. Unequipping a token is represented through emitting a transfer with `address to` being set to the zero address. Mint operations where `address from` is set to zero don't exist. To avoid being spoofed by maliciously-implemented `event Transfer` emitting contracts, an indexer should ensure that the transaction's sender is equal to `event Transfer`'s `from` value. +ABTs can be indexed by tracking the emission of `event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)`. As with [ERC-721](./eip-721.md), transfers between two accounts are represented by `address from` and `address to` being non-zero addresses. Unequipping a token is represented through emitting a transfer with `address to` being set to the zero address. Mint operations where `address from` is set to zero don't exist. To avoid being spoofed by maliciously-implemented `event Transfer` emitting contracts, an indexer should ensure that the transaction's sender is equal to `event Transfer`'s `from` value. ## Backwards Compatibility -We have adopted the [EIP-165](./eip-165.md) and `ERC721Metadata` functions purposefully to create a high degree of backward compatibility with [EIP-721](./eip-721.md). We have deliberately used [EIP-721](./eip-721.md) terminology such as `function ownerOf(...)`, `function balanceOf(...)` to minimize the effort of familiarization for ABT implementers already familiar with, e.g., [EIP-20](./eip-20.md) or [EIP-721](./eip-721.md). For indexers, we've re-used the widely-implemented `event Transfer` event signature. +We have adopted the [ERC-165](./eip-165.md) and `ERC721Metadata` functions purposefully to create a high degree of backward compatibility with [ERC-721](./eip-721.md). We have deliberately used [ERC-721](./eip-721.md) terminology such as `function ownerOf(...)`, `function balanceOf(...)` to minimize the effort of familiarization for ABT implementers already familiar with, e.g., [ERC-20](./eip-20.md) or [ERC-721](./eip-721.md). For indexers, we've re-used the widely-implemented `event Transfer` event signature. ## Reference Implementation -You can find an implementation of this standard in [../assets/eip-4973](../assets/eip-4973/ERC4973-flat.sol). +You can find an implementation of this standard in [ERC-4973-flat.sol](../assets/eip-4973/ERC4973-flat.sol). ## Security Considerations From cd86fb0ed47fcbc32aaf34a2ce7603519ed86dc1 Mon Sep 17 00:00:00 2001 From: ethosdev <79124435+ethosdev@users.noreply.github.com> Date: Mon, 15 May 2023 11:05:23 -0700 Subject: [PATCH 04/27] Update EIP-4788: Fix typo Merged by EIP-Bot. --- EIPS/eip-4788.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-4788.md b/EIPS/eip-4788.md index 87b7e416c1b5fd..492e12e23fca3d 100644 --- a/EIPS/eip-4788.md +++ b/EIPS/eip-4788.md @@ -18,7 +18,7 @@ Store each of these roots in a contract that lives in the execution state and ad ## Motivation -Roots of the beacon chain blocks are crytographic accumulators that allow proofs of arbitrary consensus state. Exposing these roots inside the EVM allows for trust-minimized access to the consensus layer. This functionality supports a wide variety of use cases that improve trust assumptions of staking pools, restaking constructions, smart contract bridges, MEV mitigations and more. +Roots of the beacon chain blocks are cryptographic accumulators that allow proofs of arbitrary consensus state. Exposing these roots inside the EVM allows for trust-minimized access to the consensus layer. This functionality supports a wide variety of use cases that improve trust assumptions of staking pools, restaking constructions, smart contract bridges, MEV mitigations and more. ## Specification From c1dfec0b20320070b8b7efd29f2d0d16f21236d4 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Mon, 15 May 2023 17:32:59 -0400 Subject: [PATCH 05/27] Update EIP-2015: Move to Review (#6458) * Update EIP-3085: Add myself as an author and move back to Review * Actually update to review * Completely rewrite EIP-2015 from the ground up * Fix invalid dependency * EIP->ERC * More ERCification * ERC -> EIP * Apply suggestions from code review --------- Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- EIPS/eip-2015.md | 134 ++++++++++++++++++----------------------------- 1 file changed, 50 insertions(+), 84 deletions(-) diff --git a/EIPS/eip-2015.md b/EIPS/eip-2015.md index 7bb624830fbbe7..6dbb8ad88aea83 100644 --- a/EIPS/eip-2015.md +++ b/EIPS/eip-2015.md @@ -1,108 +1,74 @@ --- eip: 2015 -title: Wallet Update Ethereum Chain RPC Method (`wallet_updateEthereumChain`) -author: Pedro Gomes (@pedrouid), Erik Marks (@rekmarks) +title: wallet_updateEthereumChain RPC Method +description: Adds an RPC method to switch betweeen EVM-compatible chains +author: Pedro Gomes (@pedrouid), Erik Marks (@rekmarks), Pandapip1 (@Pandapip1) discussions-to: https://ethereum-magicians.org/t/eip-2015-wallet-update-chain-json-rpc-method-wallet-updatechain/3274 -status: Stagnant +status: Review type: Standards Track category: Interface created: 2019-05-12 -requires: 155, 1474 +requires: 155 --- -## Simple Summary -Wallets can update the active chain when connected to a Dapp but not vice-versa, with `wallet_updateEthereumChain` the Dapp will be able to request this change from the Wallet. - ## Abstract -Dapp can request the Wallet to switch chains by providing the minimal parameters of `chainId`, `chainName`, `rpcUrl`, `nativeCurrency` and `blockExplorerUrl`. The Wallet will display a UI element to inform the user of this change. -## Motivation -Wallet and Dapp communication rely on the present provider that acts as middleware between the two. Using JSON-RPC methods, the Dapp is able to access not only the active accounts but also the active chain. With [EIP-1102](./eip-1102.md) we introduced the ability for Dapps to request access to the active accounts and the Wallet is able to provide a simple UI to inform the user of this action however the same is not currently possible for switching chains. The current pattern is to display some UI to request the user to switch chains within the Dapp, however this could be easily improved by triggering a UI from the Wallet side that can be approved or rejected by the user instead. +This EIP adds a wallet-namespaced RPC endpoint, `wallet_updateEthereumChain`, providing a standard interface for switching chains. The method takes the minimal parameters of `chainId`, `chainName`, `rpcUrl`, `nativeCurrency` and `blockExplorerUrl`. ## Specification -The JSON RPC method will be part of `wallet_` namespaced methods which aim to improve the UX and interoperability between Dapps and Wallets. - -### Required Parameters -- chainId (string): the id of the chain compliant with EIP-155 -- chainName (string): the name of the chain to update -- rpcUrl (string): the url endpoint for RPC requests for this chain -- nativeCurrency (Object): includes three fields for `name` (string), `symbol` (string) and `decimals` (number) -- blockExplorerUrl (string): the url endpoint for a block explorer web site for the chain. - -### Best Practices -- The Wallet should display a UI view similar to a [EIP-1102](./eip-1102.md) informing the user that the currently connected Dapp wants to switch to the specified chain. -- the Wallet should default the rpcUrl to any existing endpoints matching a chainId known previously to the wallet, otherwise it will use the provided rpcUrl as a fallback. -- the Wallet should call the rpcUrl with `net_version` and `eth_chainId` to verify the provided chainId and networkId match the responses from the rpcUrl -- the Wallet should change all nativeCurrency symbols to the provided parameter - -### Example 1 -A JSON-RPC request from a Dapp to switch the Ethereum Goerli chain would be as follows: -```json -{ - "id":1, - "jsonrpc": "2.0", - "method": "wallet_updateChain", - "params": [ - { - "chainId": 0x5, - "chainName": "Goerli", - "rpcUrl": "https://goerli.infura.io/v3/406405f9c65348f99d0d5c27104b2213", - "nativeCurrency": { - "name": "Goerli ETH", - "symbol": "gorETH" - }, - "blockExplorerUrl": "https://goerli.etherscan.io" - } - ] + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. + +This proposal adds a method to a wallet's web3 provider API: `wallet_updateEthereumChain`. + +### `wallet_updateEthereumChain` + +The `wallet_updateEthereumChain` method is used to switch to a network, and registering it with the wallet if it isn't already recognized. + +The `wallet_updateEthereumChain` method takes one parameter, an `EthereumChainSwitchRequest` object, defined below: + +```typescript +interface NativeCurrencyData { + name: string; + symbol: string; + decimals: number; } -``` -### Example 2 -A JSON-RPC request from a Dapp to switch the POA Network's xDAI chain would be as follows: -```json -{ - "id":1, - "jsonrpc": "2.0", - "method": "wallet_updateChain", - "params": [ - { - "chainId": "0x5", - "chainName": "Goerli", - "rpcUrl": "https://goerli.infura.io/v3/406405f9c65348f99d0d5c27104b2213", - "nativeCurrency": { - "name": "Goerli ETH", - "symbol": "gorETH" - }, - "blockExplorerUrl": "https://goerli.etherscan.io" - } - ] +interface EthereumChainSwitchRequest { + chainId: string; + chainName?: string; + rpcUrls?: string[]; + nativeCurrency?: NativeCurrencyData; + blockExplorerUrl?: string; } ``` -### Responses +The `chainId` is the `0x`-prefixed [EIP-155](./eip-155.md)-compliant chain ID. The `chainName` is a suggested human-readable name of the chain, to be displayed to the user. The `rpcUrls` array is a list of RPC endpoints for the given `chainId`. The `nativeCurrency` object suggests how the native currency should be displayed. Its parameters, `name`, `symbol`, and `decimals`, should be interpreted like in [ERC-20](./eip-20.md). Finally, the `blockExplorerUrl` should link to a block explorer compatible with the given `chainId`. -A success response: +All keys other than the `chainId` are optional. All keys other than `chainId` are suggestions to the wallet. Wallets can choose to ignore or display other data to users. Wallets should prompt the user before switching or adding chains. Wallets should also store a default list of data for commonly-used chains, in order to avoid phishing attacks. Wallets MUST sanitize each RPC url before using it to send other requests, including ensuring that it responds correctly to the `net_version` and `eth_chainId` methods. -```json -{ - "id": 1, - "jsonrpc": "2.0", - "result": true -} -``` +The `wallet_updateEthereumChain` method returns `true` if the chain was successfully added or switched to, and an error with code `4001` if the user rejected the request. -A failure response: +## Rationale -```json -{ - "id": 1, - "jsonrpc": "2.0", - "error": { - "code": 4001, - "message": "The user rejected the request." - } -} -``` +The `wallet_updateEthereumChain` method is designed to be as simple as possible, while still providing the necessary information for a wallet to switch to a new chain. The `chainId` is the only required parameter, as it is the only parameter that is guaranteed to be unique. The `chainName` is included to provide a human-readable name for the chain, and the `rpcUrls` array is included to provide a list of RPC endpoints for the chain. The `nativeCurrency` object is included to provide a suggestion for how the native currency should be displayed. Finally, the `blockExplorerUrl` is included to provide a link to a block explorer for the chain. + +The `wallet_updateEthereumChain` method is namespaced under `wallet_` to avoid conflicts with other methods. The `wallet_` prefix is used by other methods that are wallet-specific, such as `wallet_addEthereumChain` and `wallet_switchEthereumChain`. + +## Backwards Compatibility + +This EIP is fully backwards compatible. + +## Security Considerations + +### Server-Side Request Forgery (SSRF) + +The `rpcUrls` parameter is a list of RPC endpoints for the chain. Wallets should sanitize each RPC url before using it to send other requests, including ensuring that it responds correctly to the `net_version` and `eth_chainId` methods. + +### Phishing + +Wallets should store a default list of data for commonly-used chains, in order to avoid phishing attacks. ## Copyright + Copyright and related rights waived via [CC0](../LICENSE.md). From 45e1ff0afba5730c6ee8827f551afdf831d3b138 Mon Sep 17 00:00:00 2001 From: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> Date: Mon, 15 May 2023 22:30:09 -0400 Subject: [PATCH 06/27] CI: Bump eipw to 0.4.6 Merged by EIP-Bot. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 152e4860b0b7cd..933bf83cba3de6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -112,7 +112,7 @@ jobs: - name: Checkout EIP Repository uses: actions/checkout@47fbe2df0ad0e27efb67a70beac3555f192b062f - - uses: ethereum/eipw-action@59cdee4fc5d37c9391f3a0b52857fd5b021a39c2 + - uses: ethereum/eipw-action@70379db401cbb3197454d8e02589af42d4ac5d21 id: eipw with: token: ${{ secrets.GITHUB_TOKEN }} From 7102f4c20e8bae86fd55bd479d282467b6f4fc57 Mon Sep 17 00:00:00 2001 From: Pedro Gomes Date: Tue, 16 May 2023 05:06:39 +0200 Subject: [PATCH 07/27] Add EIP: Multi Injected Provider Discovery Merged by EIP-Bot. --- EIPS/eip-6963.md | 298 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 298 insertions(+) create mode 100644 EIPS/eip-6963.md diff --git a/EIPS/eip-6963.md b/EIPS/eip-6963.md new file mode 100644 index 00000000000000..999ea33339b1d1 --- /dev/null +++ b/EIPS/eip-6963.md @@ -0,0 +1,298 @@ +--- +eip: 6963 +title: Multi Injected Provider Discovery +description: Using window events to announce injected wallet providers +author: Pedro Gomes (@pedrouid), Kosala Hemachandra (@kvhnuke), Richard Moore (@ricmoo), Gregory Markou (@GregTheGreek), Kyle Den Hartog (@kdenhartog), Glitch (@glitch-txs), Micah Zoltu (@MicahZoltu), Jake Moxey (@jxom), Pierre Bertet (@bpierre), Darryl Yeo (@darrylyeo) +discussions-to: https://ethereum-magicians.org/t/eip-6963-multi-injected-provider-interface-aka-mipi/14076 +status: Draft +type: Standards Track +category: Interface +created: 2023-05-01 +requires: 1193 +--- + +## Abstract + +An alternative discovery mechanism to `window.ethereum` for [EIP-1193](./eip-1193.md) providers which supports discovering multiple injected wallet providers in a web page using Javascript's `window` events. + +## Motivation + +Currently, wallet providers that offer browser extensions must inject their Ethereum providers ([EIP-1193](./eip-1193.md)) into the same window object `window.ethereum`; however, this creates conflicts for users that may install more than one browser extension. + +Browser extensions are loaded in the web page in an unpredictable and unstable order, resulting in a race condition where the user does not have control over which wallet provider is selected to expose the Ethereum interface under the `window.ethereum` object. Instead, the last wallet to load usually wins. + +This results not only in a degraded user experience but also increases the barrier to entry for new browser extensions as users are forced to only install one browser extension at a time. + +Some browser extensions attempt to counteract this problem by delaying their injection to overwrite the same `window.ethereum` object which creates an unfair competition for wallet providers and lack of interoperability. + +In this proposal, we present a solution that focuses on optimizing the interoperability of multiple wallet providers. This solution aims to foster fairer competition by reducing the barriers to entry for new wallet providers, along with enhancing the user experience on Ethereum networks. + +This is achieved by introducing a set of window events to provide a two-way communication protocol between Ethereum libraries and injected scripts provided by browser extensions thus enabling users to select their wallet of choice. + +## Specification + +The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. + +### Provider Info + +Each wallet provider will be announced with the following interface `EIP6963ProviderInfo` that will be used to display to the user: + +```typescript +/** + * Represents the assets needed to display a wallet + */ +interface EIP6963ProviderInfo { + walletId: string; + uuid: string; + name: string; + icon: string; +} +``` + +The values in the `EIP6963ProviderInfo` MUST be used as follows: + +- **`walletId`** - globally unique identifier of the wallet provider (eg. `io.dopewallet.extension` or `awesomewallet`) +- **`uuid`** - locally unique of the wallet provider (UUIDv4[^rfc4122] compliant) +- **`name`** - human-readable name of the wallet provider (e.g. `DopeWalletExtension` or `AwesomeWallet`) +- **`icon`** - A URI[^rfc3986] pointing to an image. Icon images MUST be square with 96x96px minimum resolution + +[^rfc4122]: + ```csl-json + { + "author": [ + { + "given": "Paul J.", + "family": "Leach" + }, + { + "given": "Rich", + "family": "Salz" + }, + { + "given": "Michael H.", + "family": "Mealling" + } + ], + "collection-title": "Request for Comments", + "DOI": "10.17487/RFC4122", + "type": "book", + "id": "rfc4122", + "citation-label": "rfc4122", + "issued": { + "date-parts": [ + [2005, 7] + ] + }, + "number-of-pages": "32", + "publisher": "RFC Editor", + "title": "A Universally Unique IDentifier (UUID) URN Namespace", + "URL": "https://www.rfc-editor.org/info/rfc4122" + } + ``` + +[^rfc3986]: + ```csl-json + { + "author": [ + { + "given": "Tim", + "family": "Berners-Lee" + }, + { + "given": "Roy T.", + "family": "Fielding" + }, + { + "given": "Larry M", + "family": "Masinter" + } + ], + "collection-title": "Request for Comments", + "DOI": "10.17487/RFC3986", + "type": "book", + "id": "rfc3986", + "citation-label": "rfc3986", + "issued": { + "date-parts": [ + [2005, 1] + ] + }, + "number-of-pages": "61", + "publisher": "RFC Editor", + "title": "Uniform Resource Identifier (URI): Generic Syntax", + "URL": "https://www.rfc-editor.org/info/rfc3986" + } + ``` + +### Provider Detail + +The wallet provider will also announce their own [EIP-1193](./eip-1193.md) provider interface in parallel with the provider info defined above in the following interface `EIP6963ProviderDetail` + +```typescript +interface EIP6963ProviderDetail { + info: EIP6963ProviderInfo; + provider: EIP1193Provider; +} +``` + +The `EIP1193Provider` interface is documented at [EIP-1193](./eip-1193.md) and can be used to override the `window.ethereum` object once the user has explicitly selected it. + +### Window Event + +Different wallet providers might inject their scripts at different times, plus there is no guarantees that the Ethereum library in the web page will be loaded before all injected scripts are present in the page. + +To emit events both Ethereum libraries and Wallet providers must use `window.dispatchEvent` to emit events and `window.addEventListener` to observe events. There will be two event interfaces: + +```typescript +// Requesting an EVM provider +interface EIP6963RequestProviderEvent extends Event { + type: "eip6963:requestProvider"; +} + +// Annoucing an EVM provider +interface EIP6963AnnounceProviderEvent extends CustomEvent { + type: "eip6963:announceProvider"; + detail: EIP6963ProviderDetail; +} +``` + +Therefore both wallet providers and the Ethereum library must emit events when they initialize. + +```typescript +// Ethereum library initializes +window.dispatchEvent(new Event("eip6963:requestProvider")); + +// Wallet provider initializes +window.dispatchEvent(new CustomEvent("eip6963:announceProvider", { detail })); +``` + +Additionally the Wallet providers will react to the event emitted by the Ethereum library. + +```typescript +window.addEventListener( + "eip6963:requestProvider", + (event: EIP6963RequestProviderEvent) => { + announceProvider(); + } +); +``` + +## Rationale + +### Interfaces + +Standardizing a provider info interface (`EIP6963ProviderInfo`) allows determining the necessary information to populate a wallet selection popup. This is particularly useful for Ethereum libraries such as Web3Modal, RainbowKit, Web3-Onboard, ConnectKit, etc. + +Regarding the announced provider interface (`EIP6963ProviderDetail`) it was important to leave the [EIP-1193](./eip-1193.md) provider interface untouched for backwards-compatiblity therefore it's exposed in parallel. + +### Identifiers + +A locally unique identifier prevents from conflicts using the same globally unique identifier by using UUID v4.0 + +A globally unique identifier is used for machine-readable detection of the currently active wallet and it can take different formats, for example: + +```text +# lowercase name +awesomewallet + +# legacy JS variable +isCoolWallet + +# reversed domain +io.dopewallet.app +``` + +### Images/Icons + +A uri encoded image was chosen to enable flexibility for multiple protocols for fetching and rendering icons, for example: + +```sh +# svg (data uri) +data:image/svg+xml, +# png (data uri) +data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg== +# png (ipfs uri) +ipfs://QmZo7gsostaUdrV1peFz4cX6Z2TgriFJJP4VahG5knVm29 +# webp (http uri) +https://ethereum.org/static/f541df14fca86543040c113725b5bd1a/99bcf/metamask.webp +``` + +Additionally the image must be squared with 96x96px minimum resolution. Image format is recommended to be lossless like PNG and WebP or alternatively vectorial like SVG. We strongly discourage lossy formats like JPG/JPEG. + +### Events + +Previous proposal introduced mechanisms that relied on a single window object that could be overriden by multiple parties. + +Therefore using an event-based approach we avoid these race conditions and potential attacks by making the communication available both ways. + +To follow the Javascript event name conventions, the names are written in present tense and are prefixed with the standard number (`eip6963`). + +## Backwards Compatibility + +This EIP doesn't require supplanting `window.ethereum`, so it doesn't directly break existing applications. However, the recommended behavior of eventually supplanting `window.ethereum` would break existing applications that rely on it. + +## Reference Implementation + +### Wallet Provider + +Here is a reference implementation for an injected script by a wallet provider to support this new interface in parallel with the existing pattern. + +```typescript +function onPageLoad() { + let provider: EIP1193Provider; + + window.ethereum = provider; + + function announceProvider() { + const info: EIP6963ProviderInfo = { + walletId: "org.example.wallet", + uuid: "350670db-19fa-4704-a166-e52e178b59d2", + name: "Example Wallet", + icon: "https://wallet.example.org/icon.png", + }; + window.dispatchEvent( + new CustomEvent("eip6963:announceProvider", { + detail: { info, provider }, + }) + ); + } + + window.addEventListener( + "eip6963:requestProvider", + (event: EIP6963RequestProviderEvent) => { + announceProvider(); + } + ); + + announceProvider(); +} +``` + +### Ethereum library + +Here is a reference implementation for a Ethereum library to display and track multiple wallet providers that are injected by browser extensions. + +```typescript +function onPageLoad() { + const providers: EIP6963ProviderDetail[] = []; + + window.addEventListener( + "eip6963:announceProvider", + (event: EIP6963AnnounceProviderEvent) => { + providers.push(event.detail); + } + ); + + window.dispatchEvent(new Event("eip6963:requestProvider")); +} +``` + +## Security Considerations + +The security considerations of [EIP-1193](./eip-1193.md) apply to this EIP. + +The use of SVG images introduces a cross-site scripting risk as they can include JavaScript code. Applications and libraries must render SVG images using the `` tag to ensure no JS executions can happen. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From 25ceb14c55a435514c628befa70dee44f88ab40b Mon Sep 17 00:00:00 2001 From: Gavin John Date: Tue, 16 May 2023 01:42:58 -0400 Subject: [PATCH 08/27] Update EIP-107: Use standardized markdown formatting (#7030) * Update EIP-107: Use standardized markdown formatting * Update EIPS/eip-107.md --------- Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- EIPS/eip-107.md | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/EIPS/eip-107.md b/EIPS/eip-107.md index 3920c20a5bd02e..ed70e8f5f3767f 100644 --- a/EIPS/eip-107.md +++ b/EIPS/eip-107.md @@ -8,14 +8,14 @@ type: Standards Track category: Interface --- -Abstract -======== +## Abstract + This draft EIP describes the details of an authorization method that if provided by rpc enabled ethereum nodes would allow regular websites to send transactions (via ```eth_sendTransaction```) without the need to enable CORS. Instead, user would be asked to confirm the transaction via an html popup. Every read only rpc call the dapp wants to perform is redirected to an invisible iframe from the node's domain and for every transaction that the dapp wish to execute, an html popup is presented to the user to allow him/her to cancel or confirm the transaction. This allows the dapp to connect to the node's rpc api without being granted any kind of privileges. This allows users to safely interact with dapps running in their everyday web browser while their accounts are unlocked. In case the account is not unlocked, and the node has allowed the "personal" api via rpc,the html page also allow the user to enter their password to unlock the account for the scope of the transaction. -Motivation -========== +## Motivation + Currently, if a user navigates to a dapp running on a website using her/his everyday browser, the dapp will by default have no access to the rpc api for security reasons. The user will have to enable CORS for the website's domain in order for the dapp to work. Unfortunately if the user does so, the dapp will be able to send transactions from any unlocked account without the need for any user consent. In other words, not only does the user need to change the node's default setting, but the user is also forced to trust the dapp in order to use it. This is of course not acceptable and forces existing dapps to rely on the use of workarounds like: - if the transaction is a plain ether transfer, the user is asked to enter it in a dedicated trusted wallet like "Mist" - For more complex case, the user is asked to enter the transaction manually via the node command line interface. @@ -25,27 +25,27 @@ This proposal aims to provide a safe and user friendly alternative. Here are some screenshots of the provided implementation of that html popup: -Account unlocked : ------------------ +### Account unlocked + When the account is already unlocked, the user is presented with the following popup for every transaction that the dapp attempts to make: ![](../assets/eip-107/authorization.png) -Account locked and no "personal" api exposed via rpc: ------------------ +### Account locked and no "personal" api exposed via rpc: + When the account is locked, and the node does not provide access to account unlocking via its rpc interface, the following popup will be presented. This is not ideal since this requires the user to know how to unlock an account: ![](../assets/eip-107/authorization-locked.png) -Account locked but node exposing the "personal" api via rpc : ------------------ +### Account locked but node exposing the "personal" api via rpc : + A better option is to ask the user for their password, but this is only possible if the node allows access to the "personal" api via rpc. In such case, the following dialog will be presented to the user so he/she can accept the transaction by providing the password required to unlock the account: ![](../assets/eip-107/authorization-password.png) -Specification -============= +## Specification + In order for the mechanism to work, the node needs to serve an html file via http at the url \/authorization.html This file will then be used by the dapp in 2 different modes (invisible iframe and popup window). @@ -90,22 +90,22 @@ the error object cannot be a javascript Error object due to postMessage limitati ``` -Rationale -========= +## Rationale + The design for that proposal was chosen for its simplicity and security. A previous idea was to use an oauth-like protocol in order for the user to accept or deny a transaction request. It would have required deeper code change in the node and some geth contributors argues that such change did not fit into geth code base as it would have required dapp aware code. The current design, instead has a very simple implementation (self contained html file that can be shared across node's implementation) and its safeness is guarantess by browsers' cross domain policies. The use of iframe/ window was required to have both security and user friendliness. The invisible iframe allows the dapp to execute read only calls without the need for user input, and the window ensures user approval before making a call. While we could have made it without the window mode by making the iframe confirmation use the native browser ```window.confirm``` dialog, this would have prevented the use of a more elegant confirmation popup that the current design allows. It also happens to be that the ```window.confirm``` is not safe in some browsers, as it gives focus to the accept option and can be triggered automatically (https://bugs.chromium.org/p/chromium/issues/detail?id=260653). -Implementations -=============== +## Implementations + In order to implement this design, the following html file or an equivalent one needs to be served at the url \/authorization.html That's it. -``` +```html @@ -612,6 +612,7 @@ That's it. ``` + ## Copyright Copyright and related rights waived via [CC0](../LICENSE.md). From 8703d20f0a83bf10ea453e0533296619c37fd585 Mon Sep 17 00:00:00 2001 From: lightclient <14004106+lightclient@users.noreply.github.com> Date: Tue, 16 May 2023 12:56:26 +0200 Subject: [PATCH 09/27] Update EIP-4844: de-sszify spec Merged by EIP-Bot. --- EIPS/eip-4844.md | 164 +++++++++++++---------------------------------- 1 file changed, 43 insertions(+), 121 deletions(-) diff --git a/EIPS/eip-4844.md b/EIPS/eip-4844.md index 54c5f641789514..78e4c291b1b666 100644 --- a/EIPS/eip-4844.md +++ b/EIPS/eip-4844.md @@ -101,93 +101,28 @@ def fake_exponential(factor: int, numerator: int, denominator: int) -> int: ### New transaction type -We introduce a new [EIP-2718](./eip-2718.md) transaction type, -with the format being the single byte `BLOB_TX_TYPE` followed by an SSZ encoding of the -`SignedBlobTransaction` container comprising the transaction contents: +We introduce a new [EIP-2718](./eip-2718.md) transaction, "blob transaction", where the `TransactionType` is `BLOB_TX_TYPE` and the `TransactionPayload` is the following RLP value: -```python -class SignedBlobTransaction(Container): - message: BlobTransaction - signature: ECDSASignature - -class BlobTransaction(Container): - chain_id: uint256 - nonce: uint64 - max_priority_fee_per_gas: uint256 - max_fee_per_gas: uint256 - gas: uint64 - to: Union[None, Address] # Address = Bytes20 - value: uint256 - data: ByteList[MAX_CALLDATA_SIZE] - access_list: List[AccessTuple, MAX_ACCESS_LIST_SIZE] - max_fee_per_data_gas: uint256 - versioned_hashes: List[VersionedHash, MAX_VERSIONED_HASHES_LIST_SIZE] - -class AccessTuple(Container): - address: Address # Bytes20 - storage_keys: List[Hash, MAX_ACCESS_LIST_STORAGE_KEYS] - -class ECDSASignature(Container): - y_parity: boolean - r: uint256 - s: uint256 +``` +rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, value, data, access_list, max_fee_per_data_gas, blob_versioned_hashes, y_parity, r, s])`. ``` -The `max_priority_fee_per_gas` and `max_fee_per_gas` fields follow [EIP-1559](./eip-1559.md) semantics, -and `access_list` as in [`EIP-2930`](./eip-2930.md). - -[`EIP-2718`](./eip-2718.md) is extended with a "wrapper data", the typed transaction can be encoded in two forms, dependent on the context: - -- Network (default): `TransactionType || TransactionNetworkPayload`, or `LegacyTransaction` -- Minimal (as in execution payload): `TransactionType || TransactionPayload`, or `LegacyTransaction` - -Execution-payloads / blocks use the minimal encoding of transactions. -In the transaction-pool and local transaction-journal the network encoding is used. - -For previous types of transactions the network encoding is no different, i.e. `TransactionNetworkPayload == TransactionPayload`. - -The `TransactionNetworkPayload` wraps a `TransactionPayload` with additional data: -this wrapping data SHOULD be verified directly before or after signature verification. - -When a blob transaction is passed through the network (see the [Networking](#networking) section below), -the `TransactionNetworkPayload` version of the transaction also includes `blobs`, `commitments` and `proofs`. -The execution layer verifies the wrapper validity against the inner `TransactionPayload` after signature verification as: - -- `versioned_hashes` must not be empty -- All hashes in `versioned_hashes` must start with the byte `BLOB_COMMITMENT_VERSION_KZG` -- There may be at most `MAX_DATA_GAS_PER_BLOCK // DATA_GAS_PER_BLOB` total blob commitments in a valid block. -- There is an equal amount of versioned hashes, commitments, blobs and proofs. -- The commitments hash to the versioned hashes, i.e. `kzg_to_versioned_hash(commitment[i]) == versioned_hash[i]` -- The commitments match the blob contents. (Note: this can be optimized with additional data, using a proof for a - random evaluation at two points derived from the commitment and blob data) - +The `max_priority_fee_per_gas` and `max_fee_per_gas` fields follow [EIP-1559](./eip-1559.md) semantics +and `access_list` follows [EIP-2930](./eip-2930.md). -The signature is verified and `tx.origin` is calculated as follows: +The `max_fee_per_data_gas` is `uint256` and the `blob_versioned_hashes` field represents a list hash outputs from `kzg_to_versioned_hash`. -```python -def unsigned_tx_hash(tx: SignedBlobTransaction) -> Bytes32: - # The pre-image is prefixed with the transaction-type to avoid hash collisions with other tx hashers and types - return keccak256(BLOB_TX_TYPE + ssz.serialize(tx.message)) - -def get_origin(tx: SignedBlobTransaction) -> Address: - sig = tx.signature - # v = int(y_parity) + 27, same as EIP-1559 - return ecrecover(unsigned_tx_hash(tx), int(sig.y_parity)+27, sig.r, sig.s) -``` +The [EIP-2718](./eip-2718.md) `ReceiptPayload` for this transaction is `rlp([status, cumulative_transaction_gas_used, logs_bloom, logs])`. -The hash of a signed blob transaction should be computed as: +#### Signature -```python -def signed_tx_hash(tx: SignedBlobTransaction) -> Bytes32: - return keccak256(BLOB_TX_TYPE + ssz.serialize(tx)) -``` +The signature values `y_parity`, `r`, and `s` are calculated by constructing a secp256k1 signature over the following digest: -Blob transactions with empty `versioned_hashes` are also considered invalid during execution block verification, and must not be included in a valid block. +`keccak256(BLOB_TX_TYPE || rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, value, data, access_list, max_fee_per_data_gas, blob_versioned_hashes]))`. ### Header extension -The current header encoding is extended with a new 256-bit unsigned integer field `excess_data_gas`. This is the running -total of excess data gas consumed on chain since this EIP was activated. If the total amount of data gas is below the +The current header encoding is extended with a new 256-bit unsigned integer field `excess_data_gas`. This is the running total of excess data gas consumed on chain since this EIP was activated. If the total amount of data gas is below the target, `excess_data_gas` is capped at zero. The resulting RLP encoding of the header is therefore: @@ -247,8 +182,8 @@ The `ethereum/consensus-specs` repository defines the following beacon-node chan ### Opcode to get versioned hashes We add an opcode `DATAHASH` (with byte value `HASH_OPCODE_BYTE`) which reads `index` from the top of the stack -as big-endian `uint256`, and replaces it on the stack with `tx.message.versioned_hashes[index]` -if `index < len(tx.message.versioned_hashes)`, and otherwise with a zeroed `bytes32` value. +as big-endian `uint256`, and replaces it on the stack with `tx.blob_versioned_hashes[index]` +if `index < len(tx.blob_versioned_hashes)`, and otherwise with a zeroed `bytes32` value. The opcode has a gas cost of `HASH_OPCODE_GAS`. ### Point evaluation precompile @@ -294,7 +229,7 @@ def calc_data_fee(tx: SignedBlobTransaction, parent: Header) -> int: return get_total_data_gas(tx) * get_data_gasprice(parent) def get_total_data_gas(tx: SignedBlobTransaction) -> int: - return DATA_GAS_PER_BLOB * len(tx.message.versioned_hashes) + return DATA_GAS_PER_BLOB * len(tx.blob_versioned_hashes) def get_data_gasprice(header: Header) -> int: return fake_exponential( @@ -315,12 +250,12 @@ def validate_block(block: Block) -> None: ... # the signer must be able to afford the transaction - assert signer(tx).balance >= tx.message.gas * tx.message.max_fee_per_gas + get_total_data_gas(tx) * tx.message.max_fee_per_data_gas + assert signer(tx).balance >= tx.gas * tx.max_fee_per_gas + get_total_data_gas(tx) * tx.max_fee_per_data_gas # ensure that the user was willing to at least pay the current data gasprice - assert tx.message.max_fee_per_data_gas >= get_data_gasprice(parent(block).header) + assert tx.max_fee_per_data_gas >= get_data_gasprice(parent(block).header) - num_blobs += len(tx.message.versioned_hashes) + num_blobs += len(tx.blob_versioned_hashes) # check that the excess data gas is correct expected_edg = calc_excess_data_gas(parent(block).header, num_blobs) @@ -331,42 +266,33 @@ The actual `data_fee` as calculated via `calc_data_fee` is deducted from the sen ### Networking -Nodes must not automatically broadcast blob transactions to their peers. -Instead, those transactions are only announced using `NewPooledTransactionHashes` messages, and can then be manually requested via `GetPooledTransactions`. - -Transactions are presented as `TransactionType || TransactionNetworkPayload` on the execution layer network, -the payload is a SSZ encoded container: +Blob transactions have two network representations. During transaction gossip responses (`PooledTransactions`), the EIP-2718 `TransactionPayload` of the blob transaction is wrapped to become: -```python -class BlobTransactionNetworkWrapper(Container): - tx: SignedBlobTransaction - # KZGCommitment = Bytes48 - commitments: List[KZGCommitment, MAX_TX_WRAP_COMMITMENTS] - # BLSFieldElement = uint256 - blobs: List[Vector[BLSFieldElement, FIELD_ELEMENTS_PER_BLOB], LIMIT_BLOBS_PER_TX] - # KZGProof = Bytes48 - proofs: List[KZGProof, MAX_TX_WRAP_COMMITMENTS] +``` +rlp([blob_tx_payload, blob_kzgs, blobs, blob_kzg_proofs]) ``` -We do network-level validation of `BlobTransactionNetworkWrapper` objects as follows: +Each of these elements are defined as follows: -```python -def validate_blob_transaction_wrapper(wrapper: BlobTransactionNetworkWrapper): - versioned_hashes = wrapper.tx.message.versioned_hashes - commitments = wrapper.commitments - blobs = wrapper.blobs - proofs = wrapper.proofs - # note: assert blobs are not malformatted - assert len(versioned_hashes) == len(commitments) == len(blobs) == len(proofs) - assert len(versioned_hashes) > 0 - - # Verify that commitments match the blobs by checking the KZG proofs - assert verify_blob_kzg_proof_batch(blobs, commitments, proofs) - - # Now that all commitments have been verified, check that versioned_hashes matches the commitments - for versioned_hash, commitment in zip(versioned_hashes, commitments): - assert versioned_hash == kzg_to_versioned_hash(commitment) -``` +- `blob_tx_payload` - standard EIP-2718 blob transaction `TransactionPayload` +- `blob_kzgs` - list of `KZGCommitment` +- `blobs` - list of `blob` where `blob` is a list of `BLSFieldElement` +- `kzg_aggregated_proof` - `KZGProof` + +The node MUST validate `blob_tx_payload` and verify the wrapped data against it. To do so, ensure that: + +- `blob_tx_payload.blob_versioned_hashes` must not be empty +- All hashes in `blob_tx_payload.blob_versioned_hashes` must start with the byte `BLOB_COMMITMENT_VERSION_KZG` +- There must be at most `MAX_DATA_GAS_PER_BLOCK // DATA_GAS_PER_BLOB` total blob commitments in the transaction. +- There are an equal number of versioned hashes, kzg commitments, and blobs. +- The KZG commitments hash to the versioned hashes, i.e. `kzg_to_versioned_hash(kzg[i]) == versioned_hash[i]` +- The KZG commitments match the blob contents. (Note: this can be optimized using `blob_kzg_proofs`, with a proof for a + random evaluation at a point derived from the commitment and blob data for each blob) + +For body retrieval responses (`BlockBodies`), the standard EIP-2718 blob transaction `TransactionPayload` is used. + +Nodes MUST NOT automatically broadcast blob transactions to their peers. +Instead, those transactions are only announced using `NewPooledTransactionHashes` messages, and can then be manually requested via `GetPooledTransactions`. ## Rationale @@ -405,11 +331,7 @@ The work that remains to be done to get to full sharding includes: - PBS (proposer/builder separation), to avoid requiring individual validators to process 32 MB of data in one slot - Proof of custody or similar in-protocol requirement for each validator to verify a particular part of the sharded data in each block -This EIP also sets the stage for longer-term protocol cleanups: - -- It adds an SSZ transaction type, and paves the precedent that all new transaction types should be SSZ -- It defines `TransactionNetworkPayload` to separate network and block encodings of a transaction type -- Its (cleaner) gas price update rule could be applied to the primary basefee +This EIP also sets the stage for longer-term protocol cleanups. For example, its (cleaner) gas price update rule could be applied to the primary basefee calculation. ### How rollups would function @@ -460,8 +382,8 @@ The values for `TARGET_DATA_GAS_PER_BLOCK` and `MAX_DATA_GAS_PER_BLOCK` are chos ### Blob non-accessibility -This EIP introduces a transaction type that has a distinct mempool version (`BlobTransactionNetworkWrapper`) and execution-payload version (`SignedBlobTransaction`), -with only one-way convertibility between the two. The blobs are in the `BlobTransactionNetworkWrapper` and not in the `SignedBlobTransaction`; +This EIP introduces a transaction type that has a distinct mempool version and execution-payload version, +with only one-way convertibility between the two. The blobs are in the network representation and not in the consensus representation; instead, they go into the `BeaconBlockBody`. This means that there is now a part of a transaction that will not be accessible from the web3 API. ### Mempool issues From f96614908d3665aebf4e48f79919177c310304b5 Mon Sep 17 00:00:00 2001 From: lightclient <14004106+lightclient@users.noreply.github.com> Date: Tue, 16 May 2023 13:17:33 +0200 Subject: [PATCH 10/27] Update EIP-4844: change op to `BLOBHASH` Merged by EIP-Bot. --- EIPS/eip-4844.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-4844.md b/EIPS/eip-4844.md index 78e4c291b1b666..c8b35be69e4241 100644 --- a/EIPS/eip-4844.md +++ b/EIPS/eip-4844.md @@ -181,7 +181,7 @@ The `ethereum/consensus-specs` repository defines the following beacon-node chan ### Opcode to get versioned hashes -We add an opcode `DATAHASH` (with byte value `HASH_OPCODE_BYTE`) which reads `index` from the top of the stack +We add an instruction `BLOBHASH` (with opcode `HASH_OPCODE_BYTE`) which reads `index` from the top of the stack as big-endian `uint256`, and replaces it on the stack with `tx.blob_versioned_hashes[index]` if `index < len(tx.blob_versioned_hashes)`, and otherwise with a zeroed `bytes32` value. The opcode has a gas cost of `HASH_OPCODE_GAS`. From 108b5e0586212f799c5cede81c120c2af1f9d209 Mon Sep 17 00:00:00 2001 From: "5660.eth" <76733013+5660-eth@users.noreply.github.com> Date: Tue, 16 May 2023 22:51:44 +0800 Subject: [PATCH 11/27] Update EIP-6105: Move to Final Merged by EIP-Bot. --- EIPS/eip-6105.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/EIPS/eip-6105.md b/EIPS/eip-6105.md index a30dbff950372e..5c30480c1ceb39 100644 --- a/EIPS/eip-6105.md +++ b/EIPS/eip-6105.md @@ -4,8 +4,7 @@ title: No Intermediary NFT Trading Protocol description: Adds a marketplace functionality with more diverse royalty schemes to ERC-721 author: 5660-eth (@5660-eth), Silvere Heraudeau (@lambdalf-dev), Martin McConnell (@offgridgecko), Abu , Wizard Wang discussions-to: https://ethereum-magicians.org/t/eip6105-no-intermediary-nft-trading-protocol/12171 -status: Last Call -last-call-deadline: 2023-04-04 +status: Final type: Standards Track category: ERC created: 2022-12-02 From bb6e11a7af80eb53955b8d24a7d398726ec66f65 Mon Sep 17 00:00:00 2001 From: ArchieChang Date: Tue, 16 May 2023 22:54:51 +0800 Subject: [PATCH 12/27] Update EIP-6672: Move to Final Merged by EIP-Bot. --- EIPS/eip-6672.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-6672.md b/EIPS/eip-6672.md index 45b5245141e8d9..74afff70e1620c 100644 --- a/EIPS/eip-6672.md +++ b/EIPS/eip-6672.md @@ -2,10 +2,9 @@ eip: 6672 title: Multi-redeemable NFTs description: An extension of ERC-721 which enables an NFT to be redeemed in multiple scenarios for either a physical or digital object -author: RE:DREAMER Lab , Archie Chang (@ArchieR7) , Kai Yu (@chihkaiyu) , Yonathan Randyanto (@Randyanto) , Boyu Chu (@chuboyu) +author: RE:DREAMER Lab , Archie Chang (@ArchieR7) , Kai Yu (@chihkaiyu) , Yonathan Randyanto (@Randyanto) , Boyu Chu (@chuboyu) , Boxi Li (@boxi79) , Jason Cheng (@Jason0729) discussions-to: https://ethereum-magicians.org/t/eip-6672-multi-redeemable-nfts/13276 -status: Last Call -last-call-deadline: 2023-05-16 +status: Final type: Standards Track category: ERC created: 2023-02-21 From 1e00cc289acbff10101c777fbcecb3b9b3ff0104 Mon Sep 17 00:00:00 2001 From: Gavin John Date: Tue, 16 May 2023 10:55:19 -0400 Subject: [PATCH 13/27] Update EIP-5615: Move to Final Merged by EIP-Bot. --- EIPS/eip-5615.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/EIPS/eip-5615.md b/EIPS/eip-5615.md index 4dd5d55c6883fa..8bc5f4be5a090a 100644 --- a/EIPS/eip-5615.md +++ b/EIPS/eip-5615.md @@ -4,8 +4,7 @@ title: ERC-1155 Supply Extension description: A simple mechanism to fetch token supply data from ERC-1155 tokens author: Gavin John (@Pandapip1) discussions-to: https://ethereum-magicians.org/t/eip-5615-eip-1155-supply-extension/10732 -status: Last Call -last-call-deadline: 2023-03-08 +status: Final type: Standards Track category: ERC created: 2023-05-25 From 5f5719c244ded9612b41b4a41c6cf2af846cde4d Mon Sep 17 00:00:00 2001 From: Gavin John Date: Tue, 16 May 2023 10:58:03 -0400 Subject: [PATCH 14/27] Update EIP-5507: Move to Final Merged by EIP-Bot. --- EIPS/eip-5507.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/EIPS/eip-5507.md b/EIPS/eip-5507.md index d1f09b117d4ebe..edf17d460286b8 100644 --- a/EIPS/eip-5507.md +++ b/EIPS/eip-5507.md @@ -4,8 +4,7 @@ title: Refundable Tokens description: Adds refund functionality to ERC-20, ERC-721, and ERC-1155 tokens author: elie222 (@elie222), Gavin John (@Pandapip1) discussions-to: https://ethereum-magicians.org/t/eip-5507-refundable-nfts/10451 -status: Last Call -last-call-deadline: 2023-05-02 +status: Final type: Standards Track category: ERC created: 2022-08-19 From fd6eb62d52a90abcc29427f9c115851a3bdbe83f Mon Sep 17 00:00:00 2001 From: Renan Souza Date: Tue, 16 May 2023 12:22:21 -0300 Subject: [PATCH 15/27] Add EIP: Math checking in EVM Merged by EIP-Bot. --- EIPS/eip-6888.md | 107 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 EIPS/eip-6888.md diff --git a/EIPS/eip-6888.md b/EIPS/eip-6888.md new file mode 100644 index 00000000000000..55605f7dcb64d4 --- /dev/null +++ b/EIPS/eip-6888.md @@ -0,0 +1,107 @@ +--- +eip: 6888 +title: Math checking in EVM +description: Check for math underflows overflows and division by zero at EVM level +author: Renan Rodrigues de Souza (@RenanSouza2) +discussions-to: https://ethereum-magicians.org/t/eip-math-checking/13846 +status: Draft +type: Standards Track +category: Core +created: 2023-04-16 +--- + +## Abstract + +This EIP adds many checks to EVM arithmetic and a new opcode to get the corresponding flags and clear them. The list of check includes underflows, overflows, division by zero. + +## Motivation + +The importance of math checks in smart contract projects is very clear. It was an OpenZeppelin library and then incorporated in Solidity's default behavior. Bringing this to EVM level can combine both gas efficiency and safety. + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. + +Starting from `BLOCK_TIMESAMP >= HARDFORK_TIMESTAMP` + +### Constants + +| Constant | Type | Value | +| ------------------- | --------- |:------------- | +| `INT_MIN` | `int` | -(2**255) | +| `UINT_MAX` | `uint` | 2 ** 256 | + +### Flags + +| Variable | Type | Initial Value | +| ------------------- | --------- |:------------- | +| `carry` | `bool` | false | +| `overflow` | `bool` | false | + +Two new flags are added to the EVM state: unsigned error (`carry`) and signed error (`overflow`). The scope of those flags are the same as the program counter. Each frame of execution has their own flags. At the frame creation they are unset and they are updated in call. + +From this point forward `a`, `b` and `c` references the arguments in a math operation and `res` the output. `c` is only used if the operation takes 3 inputs. + +The `carry` flag MUST be set in the following circumstances: + + - When opcode is `ADD` (`0x01`) and `res < a` + - When opcode is `MUL` (`0x02`) and `a != 0 ∧ res / a != b` + - When opcode is `SUB` (`0x03`) and `b > a` + - When opcode is `DIV` (`0x04`) or `MOD` (`0x06`); and `b == 0` + - When opcode is `ADDMOD` (`0x08`) and `c == 0 ∨ ((a + b) / UINT_MAX > c)` + - When opcode is `MULMOD` (`0x08`) and `c == 0 ∨ ((a * b) / UINT_MAX > c)` + - When opcode is `EXP` (`0x0A`) and ideal `a ** b > UINT_MAX` + - When opcode is `SHL` (`0x1b`) and `res >> a != b` + +The `overflow` flag is MUST set in the following circumstances: + + - When opcode is `SUB` (`0x03`) and `a != 0 ∧ sgn(a) != sgn(b) ∧ sgn(b) == sgn(res)` + - When opcode is `ADD` (`0x01`) and `a != 0 ∧ sgn(a) == sgn(b) ∧ sgn(a) != sgn(res)` + - When opcode is `MUL` (`0x02`) and `(a == -1 ∧ b == INT_MIN) ∨ (a == INT_MIN ∧ b == -1) ∨ (a != 0 ∧ (res / a != b))` (this `/` represents `SDIV`) + - When opcode is `SDIV` (`0x05`) or `SMOD` (`0x06`); and `b == 0 ∨ (a == INT_MIN ∧ b == -1)` + - When opcode is `SHL` (`0x1b`) and `res >> a != b` (this `>>` represents `SAR`) + +The function `sgn(num)` returns the sign of the number, it can be negative, zero or positive. + +| Value | Mnemonic | δ | α | Description | +|-------|----------|---|---|---------------------------------------------------------------------------------------| +| `JUMPC` | `0x5B` | 1 | 0 | Conditionally alter the program counter. +|||||```J_JUMPC = carry ? µ_s[0] : µ_pc + 1``` +|||||```carry = overflow = false``` | +| `JUMPO` | `0x5C` | 1 | 0 | Conditionally alter the program counter. +|||||```J_JUMPO = ovewrflow ? µ_s[0] : µ_pc + 1``` +|||||```carry = overflow = false``` | + +### gas + +The gas cost for both instructions is `G_high`, the same as `JUMPI`. + +## Rationale + +EVM uses two's complement for negative numbers. The opcodes listed above triggers one or two flags depending if they are used for signed and unsigned numbers. + +The conditions described for each opcode is made with implementation friendliness in mind. The only exception is EXP as it is hard to give a concise test as most of the others relied on the inverse operation and there is no native `LOG`. Most `EXP` implementations will internally use `MUL` so the flag `carry` can be drawn from that instruction, not the `overflow`. + +The divisions by `UINT_MAX` used in the `ADDMOD` and `MULMOD` is another way to represent the higher 256 bits of the internal 512 number representation. + +Both flags are cleaned at the same time because the instructions are expected to be used when transitioning between codes where numbers are treated as signed or unsigned. + +## Backwards Compatibility + +This EIP introduces a new opcode and changes int EVM behavior. + +## Test Cases + +TBD + +## Reference Implementation + +TBD + +## Security Considerations + +This is a new EVM behavior but each code will decide how to interact with it. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). From b091d8c93d485732c19f14cb157d5249578c8d57 Mon Sep 17 00:00:00 2001 From: Jayden Windle Date: Tue, 16 May 2023 12:56:24 -0400 Subject: [PATCH 16/27] Update EIP-6551: Removed accidentally included SPDX license identifier Merged by EIP-Bot. --- EIPS/eip-6551.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/EIPS/eip-6551.md b/EIPS/eip-6551.md index dce1295b2c8cea..f9b3c74ccf9b90 100644 --- a/EIPS/eip-6551.md +++ b/EIPS/eip-6551.md @@ -241,7 +241,6 @@ Non-fungible token contracts that do not implement an `ownerOf` method, such as ### Example Account Implementation ```solidity -// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; import "openzeppelin-contracts/utils/introspection/IERC165.sol"; @@ -323,7 +322,6 @@ contract ExampleERC6551Account is IERC165, IERC1271, IERC6551Account { ### Registry Implementation ```solidity -// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.13; import "openzeppelin-contracts/utils/Create2.sol"; From 9c64466d962ce376f381c5e8d90834a5599284a0 Mon Sep 17 00:00:00 2001 From: Leeren Date: Tue, 16 May 2023 17:16:10 -0700 Subject: [PATCH 17/27] Update EIP-5700: Simplifies EIP-5700 after a year of review Merged by EIP-Bot. --- EIPS/eip-5700.md | 865 ++++-------------- assets/eip-5700/erc1155/ERC1155Bindable.sol | 166 ++-- assets/eip-5700/erc1155/ERC1155Binder.sol | 108 --- assets/eip-5700/erc721/ERC721Bindable.sol | 146 +-- assets/eip-5700/erc721/ERC721Binder.sol | 135 --- .../eip-5700/interfaces/IBindableErrors.sol | 10 + .../interfaces/IERC1155BindableErrors.sol | 13 - assets/eip-5700/interfaces/IERC1155Binder.sol | 130 --- .../interfaces/IERC1155BinderErrors.sol | 13 - .../eip-5700/interfaces/IERC721Bindable.sol | 136 ++- .../interfaces/IERC721BindableErrors.sol | 19 - assets/eip-5700/interfaces/IERC721Binder.sol | 72 -- .../interfaces/IERC721BinderErrors.sol | 25 - 13 files changed, 383 insertions(+), 1455 deletions(-) delete mode 100644 assets/eip-5700/erc1155/ERC1155Binder.sol delete mode 100644 assets/eip-5700/erc721/ERC721Binder.sol create mode 100644 assets/eip-5700/interfaces/IBindableErrors.sol delete mode 100644 assets/eip-5700/interfaces/IERC1155BindableErrors.sol delete mode 100644 assets/eip-5700/interfaces/IERC1155Binder.sol delete mode 100644 assets/eip-5700/interfaces/IERC1155BinderErrors.sol delete mode 100644 assets/eip-5700/interfaces/IERC721BindableErrors.sol delete mode 100644 assets/eip-5700/interfaces/IERC721Binder.sol delete mode 100644 assets/eip-5700/interfaces/IERC721BinderErrors.sol diff --git a/EIPS/eip-5700.md b/EIPS/eip-5700.md index 0de0f5c8ae402c..425c18a3bf8747 100644 --- a/EIPS/eip-5700.md +++ b/EIPS/eip-5700.md @@ -13,813 +13,342 @@ requires: 165, 721, 1155 ## Abstract -The proposed standard defines an interface by which fungible and non-fungible tokens may be bound to arbitrary assets (typically represented as NFTs themselves), enabling token ownership and transfer attribution to be proxied through the assets they are bound to. +This standard defines an interface for [ERC-721](./eip-721.md) or [ERC-1155](./eip-155.md) tokens, known as "bindables", to "bind" to [ERC-721](./eip-721.md) NFTs. -A bindable token ("bindable") is an [EIP-721](./eip-721.md) or [EIP-1155](./eip-1155.md) token which, when bound to an asset, delegates ownership and tracking through its bound asset, remaining locked for direct transfers until it is unbound. When unbound, bindable tokens function normally according to their base token implementations. +When bindable tokens "bind" to an NFT, even though their ownership is transferred to the NFT, the NFT owner may "unbind" the tokens and claim their ownership. This enables bindable tokens to transfer with their bound NFTs without extra cost, offering a more effective way to create and transfer N:1 token-to-NFT bundles. Until an NFT owner decides to unbind them, bound tokens stay locked and resume their base token functionalities after unbinding. -A bound asset ("binder") has few restrictions on how it is represented, except that it be unique and expose an interface for ownership queries. A binder would most commonly be represented as an [EIP-721](./eip-721.md) NFT. Binders and bindables form a one-to-many relationship. +This standard supports various use-cases such as: -Below are example use-cases that benefit from such a standard: - -- NFT-bundled physical assets: microchipped streetwear bundles, digitized automobile collections, digitally-twinned real-estate property -- NFT-bundled digital assets: accessorizable virtual wardrobes, composable music tracks, customizable metaverse land +- NFT-bundled physical assets like microchipped streetwear, digitized car collections, and digitally twinned real estate. +- NFT-bundled digital assets such as accessorizable virtual wardrobes, composable music tracks, and customizable metaverse land. ## Motivation -A standard interface for token binding allows tokens to be bundled and transferred with other assets in a way that is easily integrable with wallets, marketplaces, and other NFT applications, and avoids the need for ad-hoc ownership attribution strategies that are neither flexible nor backwards-compatible. +A standard interface for NFT binding offers a seamless and efficient way to bundle and transfer tokens with NFTs, ensuring compatibility with wallets, marketplaces, and other NFT applications. It eliminates the need for rigid, implementation-specific strategies for token ownership. -Unlike other standards tackling delegated ownership attribution, which look at composability on the account level, this standard addresses composability on the asset level, with the goal of creating a universal interface for token modularity that is compatible with existing [EIP-721](./eip-721.md) and [EIP-1155](./eip-1155.md) standards. +In contrast with other standards that deal with token ownership at the account level, this standard aims to address token ownership at the NFT level. Its objective is to build a universal interface for token bundling, compatible with existing [ERC-721](./eip-721.md) and [ERC-1155](./eip-1155.md) standards. ## Specification The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119. -### EIP-721 Bindable +### ERC-721 Bindable -**Smart contracts implementing the EIP-721 bindable standard MUST implement the `IERC721Bindable` interface.** +**Smart contracts implementing the ERC-721 bindable standard MUST implement the `IERC721Bindable` interface.** **Implementers of the `IER721Bindable` interface MUST return `true` if `0x82a34a7d` is passed as the identifier to the `supportsInterface` function.** ```solidity /// @title ERC-721 Bindable Token Standard -/// @dev See https://eips.ethereum.org/EIPS/eip-5700 +/// @dev See https://eips.ethereum.org/ERCS/eip-5700 /// Note: the ERC-165 identifier for this interface is 0x82a34a7d. interface IERC721Bindable /* is IERC721 */ { - /// @notice The `Bind` event MUST emit when NFT ownership is delegated - /// through an asset and when minting an NFT bound to an existing asset. - /// @dev When minting bound NFTs, `from` MUST be set to the zero address. - /// @param operator The address calling the bind. - /// @param from The unbound NFT owner address. - /// @param to The bound NFT owner delegate address. - /// @param tokenId The identifier of the NFT being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param bindAddress The contract address handling asset ownership. + /// @notice This event emits when an unbound token is bound to an NFT. + /// @param operator The address approved to perform the binding. + /// @param from The address of the unbound token owner. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of binding token. event Bind( address indexed operator, address indexed from, - address to, - uint256 tokenId, + address indexed bindAddress, uint256 bindId, - address indexed bindAddress + uint256 tokenId ); - /// @notice The `Unbind` event MUST emit when asset-bound NFT ownership is - /// revoked, as well as when burning an NFT bound to an existing asset. - /// @dev When burning bound NFTs, `to` MUST be set to the zero address. - /// @param operator The address calling the unbind. - /// @param from The bound asset owner address. - /// @param to The unbound NFT owner address. - /// @param tokenId The identifier of the NFT being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. + /// @notice This event emits when an NFT-bound token is unbound. + /// @param operator The address approved to perform the unbinding. + /// @param from The owner of the NFT the token is bound to. + /// @param to The address of the new unbound token owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token. event Unbind( address indexed operator, address indexed from, address to, - uint256 tokenId, + address indexed bindAddress, uint256 bindId, - address indexed bindAddress + uint256 tokenId ); - /// @notice Binds NFT `tokenId` owned by `from` to asset `bindId` at address - /// `bindAddress`, delegating NFT-bound ownership to `to`. + /// @notice Binds token `tokenId` to NFT `bindId` at address `bindAddress`. /// @dev The function MUST throw unless `msg.sender` is the current owner, - /// an authorized operator, or the approved address for the NFT. It also - /// MUST throw if the NFT is already bound, if `from` is not the NFT owner, - /// or if `to` is not `bindAddress` or its asset owner. After binding, the - /// function MUST check if `bindAddress` is a valid contract / (code size - /// > 0), and if so, call `onERC721Bind` on it, throwing if the wrong - /// identifier is returned (see "Binding Rules") or if the contract is - /// invalid. On bind completion, the function MUST emit `Bind` & `Transfer` - /// events to reflect delegated ownership change. - /// @param from The unbound NFT original owner address. - /// @param to The bound NFT delegate owner address (SHOULD be `bindAddress`). - /// @param tokenId The identifier of the NFT being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param bindAddress The contract address handling asset ownership. - /// @param data Additional data sent with the `onERC721Bind` hook. + /// an authorized operator, or the approved address for the token. It also + /// MUST throw if the token is already bound or if `from` is not the token + /// owner. Finally, it MUST throw if the NFT contract does not support the + /// ERC-721 interface or if the NFT being bound to does not exist. Before + /// binding, token ownership MUST be transferred to the contract address of + /// the NFT. On bind completion, the function MUST emit `Transfer` & `Bind` + /// events to reflect the implicit token transfer and subsequent bind. + /// @param from The address of the unbound token owner. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of the binding token. function bind( address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId ) external; - /// @notice Unbinds NFT `tokenId` from asset `bindId` owned by `from` at - /// address `bindAddress`, assigning unbound NFT ownership to `to`. - /// @dev The function MUST throw unless `msg.sender` is the asset owner or - /// an approved operator. It also MUST throw if NFT `tokenId` is not bound, - /// if `from` is not the asset owner, or if `to` is the zero address. After - /// unbinding, the function MUST check if `bindAddress` is a valid contract - /// (code size > 0), and if so, call `onERC721Unbind` on it, throwing if - /// the wrong identifier is returned (see "Binding Rules") or if the - /// contract is invalid. The function also MUST check if `to` is a valid - /// contract, and if so, call `onERC721Received`, throwing if the wrong - /// identifier is returned. On unbind completion, the function MUST emit - /// `Unbind` & `Transfer` events to reflect delegated ownership change. - /// @param from The bound asset owner address. - /// @param to The unbound NFT owner address. - /// @param tokenId The identifier of the NFT being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param data Additional data sent with the `onERC721Unbind` hook. + /// @notice Unbinds token `tokenId` from NFT `bindId` at address `bindAddress`. + /// @dev The function MUST throw unless `msg.sender` is the current owner, + /// an authorized operator, or the approved address for the NFT the token + /// is bound to. It also MUST throw if the token is unbound, if `from` is + /// not the owner of the bound NFT, or if `to` is the zero address. After + /// unbinding, token ownership MUST be transferred to `to`, during which + /// the function MUST check if `to` is a valid contract (code size > 0), + /// and if so, call `onERC721Received`, throwing if the wrong identifier is + /// returned. On unbind completion, the function MUST emit `Unbind` & + /// `Transfer` events to reflect the unbind and subsequent transfer. + /// @param from The address of the owner of the NFT the token is bound to. + /// @param to The address of the unbound token new owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token. function unbind( address from, address to, - uint256 tokenId, - uint256 bindId, address bindAddress, - bytes calldata data - ) external; - - /// @notice Gets the asset identifier and address which an NFT is bound to. - /// @param tokenId The identifier of the NFT being queried. - /// @return The bound asset identifier and contract address. - function binderOf(uint256 tokenId) external returns (uint256, address); - - /// @notice Counts NFTs bound to asset `bindId` at address `bindAddress`. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param bindId The identifier of the bound asset. - /// @return The total number of NFTs bound to the asset. - function boundBalanceOf(address bindAddress, uint256 bindId) external returns (uint256); - -``` - -**Smart contracts managing assets MUST implement the `IERC721Binder` interface if they are to accept binds from EIP-721 bindables.** - -**Implementers of the `IERC721Binder` interface MUST return `true` if `0x2ac2d2bc` is passed as the identifier to the `supportsInterface` function.** - -```solidity -/// @dev Note: the ERC-165 identifier for this interface is 0x2ac2d2bc. -interface IERC721Binder /* is IERC165 */ { - - /// @notice Handles the binding of an IERC721Bindable-compliant NFT. - /// @dev An IERC721Bindable-compliant smart contract MUST call this function - /// at the end of a `bind` after ownership is delegated through an asset. - /// The function MUST revert if `to` is not the asset owner or the binder - /// address. The function MUST revert if it rejects the bind. If accepting - /// the bind, the function MUST return `bytes4(keccak256("onERC721Bind(address,address,address,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the binding NFT is `msg.sender`. - /// @param operator The address initiating the bind. - /// @param from The unbound NFT owner address. - /// @param to The bound NFT owner delegate address. - /// @param tokenId The identifier of the NFT being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC721Bind(address,address,address,uint256,uint256,bytes)"))` - function onERC721Bind( - address operator, - address from, - address to, - uint256 tokenId, uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles the unbinding of an IERC721Bindable-compliant NFT. - /// @dev An IERC721Bindable-compliant smart contract MUST call this function - /// at the end of an `unbind` after revoking asset-delegated ownership. - /// The function MUST revert if `from` is not the asset owner of `bindId`. - /// The function MUST revert if it rejects the unbind. If accepting the - /// unbind, the function MUST return `bytes4(keccak256("onERC721Unbind(address,address,address,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the unbinding NFT is `msg.sender`. - /// @param from The bound asset owner address. - /// @param to The unbound NFT owner address. - /// @param tokenId The identifier of the NFT being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param data Additional data with no specified format. - /// @return `bytes4(keccak256("onERC721Unbind(address,address,address,uint256,uint256,bytes)"))` - function onERC721Unbind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); + uint256 tokenId + ) external; - /// @notice Gets the owner address of the asset identified by `bindId`. - /// @dev This function MUST throw for assets assigned to the zero address. - /// @param bindId The identifier of the asset whose owner is being queried. - /// @return The address of the owner of the asset. - function ownerOf(uint256 bindId) external view returns (address); + /// @notice Gets the NFT address and identifier token `tokenId` is bound to. + /// @dev When the token is unbound, this function MUST return the zero + /// address for the address portion to indicate no binding exists. + /// @param tokenId The identifier of the token being queried. + /// @return The token-bound NFT contract address and numerical identifier. + function binderOf(uint256 tokenId) external view returns (address, uint256); - /// @notice Checks if an operator can act on behalf of an asset owner. - /// @param owner The address that owns an asset. - /// @param operator The address that can act on behalf of the asset owner. - /// @return True if `operator` can act on behalf of `owner`, else False. - function isApprovedForAll(address owner, address operator) external view returns (bool); + /// @notice Gets total tokens bound to NFT `bindId` at address `bindAddress`. + /// @param bindAddress The contract address of the NFT being queried. + /// @param bindId The identifier of the NFT being queried. + /// @return The total number of tokens bound to the queried NFT. + function boundBalanceOf(address bindAddress, uint256 bindId) external view returns (uint256); -} ``` -### EIP-1155 Bindable +### ERC-1155 Bindable -**Smart contracts implementing the EIP-1155 Bindable standard MUST implement the `IERC1155Bindable` interface.** +**Smart contracts implementing the ERC-1155 Bindable standard MUST implement the `IERC1155Bindable` interface.** **Implementers of the `IER1155Bindable` interface MUST return `true` if `0xd0d55c6` is passed as the identifier to the `supportsInterface` function.** ```solidity /// @title ERC-1155 Bindable Token Standard -/// @dev See https://eips.ethereum.org/EIPS/eip-5700 +/// @dev See https://eips.ethereum.org/ERCS/eip-5700 /// Note: the ERC-165 identifier for this interface is 0xd0d555c6. interface IERC1155Bindable /* is IERC1155 */ { - /// @notice The `Bind` event MUST emit when token ownership is delegated - /// through an asset and when minting tokens bound to an existing asset. - /// @dev When minting bound tokens, `from` MUST be set to the zero address. - /// @param operator The address calling the bind. + /// @notice This event emits when token(s) are bound to an NFT. + /// @param operator The address approved to perform the binding. /// @param from The owner address of the unbound tokens. - /// @param to The delegate owner address of the bound tokens. - /// @param tokenId The identifier of the token type being bound. - /// @param amount The number of tokens of type `tokenId` being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param bindAddress The contract address handling asset ownership. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of the binding token type. + /// @param amount The number of tokens binding to the NFT. event Bind( address indexed operator, address indexed from, - address to, - uint256 tokenId, - uint256 amount, + address indexed bindAddress, uint256 bindId, - address indexed bindAddress + uint256 tokenId, + uint256 amount ); - /// @notice The `BindBatch` event MUST emit when token ownership of - /// different token types are delegated through multiple assets and when - /// minting different token types bound to multiple existing assets. - /// @dev When minting bound tokens, `from` MUST be set to the zero address. - /// @param operator The address calling the bind. + /// @notice This event emits when token(s) of different types are bound to an NFT. + /// @param operator The address approved to perform the batch binding. /// @param from The owner address of the unbound tokens. - /// @param to The delegate owner address of the bound tokens. - /// @param tokenIds The identifiers of the token types being bound. - /// @param amounts The number of tokens for each token type being bound. - /// @param bindIds The identifiers of the assets being bound to. - /// @param bindAddress The contract address handling asset ownership. + /// @param bindAddress The contract address of the NFTs being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenIds The identifiers of the binding token types. + /// @param amounts The number of tokens per type binding to the NFTs. event BindBatch( address indexed operator, address indexed from, - address to, + address indexed bindAddress, + uint256 bindId, uint256[] tokenIds, - uint256[] amounts, - uint256[] bindIds, - address indexed bindAddress + uint256[] amounts ); - /// @notice The `Unbind` event MUST emit when asset-delegated token - /// ownership is revoked and when burning tokens bound to existing assets. - /// @dev When burning bound tokens, `to` MUST be set to the zero address. - /// @param operator The address calling the unbind. - /// @param from The owner address of the bound asset. - /// @param to The owner address of the unbound tokens. - /// @param tokenId The identifier of the token type being unbound. - /// @param amount The number of tokens of type `tokenId` being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. + /// @notice This event emits when token(s) are unbound from an NFT. + /// @param operator The address approved to perform the unbinding. + /// @param from The owner address of the NFT the tokens are bound to. + /// @param to The address of the unbound tokens' new owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token type. + /// @param amount The number of tokens unbinding from the NFT. event Unbind( address indexed operator, address indexed from, address to, - uint256 tokenId, - uint256 amount, + address indexed bindAddress, uint256 bindId, - address indexed bindAddress + uint256 tokenId, + uint256 amount ); - /// @notice The `UnbindBatch` event MUST emit when asset-delegated token - /// ownership is revoked for different token types and when burning - /// different token types bound to multiple existing assets. - /// @dev When burning bound tokens, `to` MUST be set to the zero address. - /// @param operator The address calling the unbind. - /// @param from The owner address of the bound asset. - /// @param to The owner address of the unbound tokens. - /// @param tokenIds The identifiers of the token types being unbound. - /// @param amounts The number of tokens for each token type being unbound. - /// @param bindIds The identifiers of the assets being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. + /// @notice This event emits when token(s) of different types are unbound from an NFT. + /// @param operator The address approved to perform the batch binding. + /// @param from The owner address of the unbound tokens. + /// @param to The address of the unbound tokens' new owner. + /// @param bindAddress The contract address of the NFTs being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenIds The identifiers of the unbinding token types. + /// @param amounts The number of tokens per type unbinding from the NFTs. event UnbindBatch( address indexed operator, address indexed from, address to, + address indexed bindAddress, + uint256 bindId, uint256[] tokenIds, - uint256[] amounts, - uint256[] bindIds, - address indexed bindAddress + uint256[] amounts ); - /// @notice Binds `amount` tokens of type `tokenId` owned by `from` to asset - /// `bindId` at `bindAddress`, delegating token-bound ownership to `to`. + /// @notice Binds `amount` tokens of `tokenId` to NFT `bindId` at address `bindAddress`. /// @dev The function MUST throw unless `msg.sender` is an approved operator - /// for `from`. The function also MUST throw if `from` owns fewer than - /// `amount` tokens, or if `to` is not `bindAddress` or its asset owner. - /// After binding, the function MUST check if `bindAddress` is a valid - /// contract (code size > 0), and if so, call `onERC1155Bind` on it, - /// throwing if the wrong identifier is returned (see "Binding Rules") or - /// if the contract is invalid. On bind completion, the function MUST emit - /// `Bind` & `TransferSingle` events to reflect delegated ownership change. + /// for `from`. It also MUST throw if the `from` owns fewer than `amount` + /// tokens. Finally, it MUST throw if the NFT contract does not support the + /// ERC-721 interface or if the NFT being bound to does not exist. Before + /// binding, tokens MUST be transferred to the contract address of the NFT. + /// On bind completion, the function MUST emit `Transfer` & `Bind` events + /// to reflect the implicit token transfers and subsequent bind. /// @param from The owner address of the unbound tokens. - /// @param to The delegate owner address of the bound tokens (SHOULD be `bindAddress`). - /// @param tokenId The identifier of the token type being bound. - /// @param amount The number of tokens of type `tokenId` being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param bindAddress The contract address handling asset ownership. - /// @param data Additional data sent with the `onERC1155Bind` hook. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of the binding token type. + /// @param amount The number of tokens binding to the NFT. function bind( address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId, + uint256 amount ) external; - /// @notice Binds `amounts` tokens of types `tokenIds` owned by `from` to - /// assets `bindIds` at `bindAddress`, delegating bound ownership to `to`. + /// @notice Binds `amounts` tokens of `tokenIds` to NFT `bindId` at address `bindAddress`. /// @dev The function MUST throw unless `msg.sender` is an approved operator - /// for `from`. The function also MUST throw if length of `amounts` is not - /// the same as `tokenIds` or `bindIds`, if any balances of `tokenIds` for - /// `from` is less than that of `amounts`, or if `to` is not `bindAddress` - /// or the asset owner. After delegating ownership, the function MUST check - /// if `bindAddress` is a valid contract (code size > 0), and if so, call - /// `onERC1155BatchBind` on it, throwing if the wrong identifier is - /// returned (see "Binding Rules") or if the contract is invalid. On bind - /// completion, the function MUST emit `BindBatch` & `TransferBatch` events - /// to reflect delegated ownership changes. + /// for `from`. It also MUST throw if the length of `amounts` is not the + /// same as `tokenIds`, or if any balances of `tokenIds` for `from` is less + /// than that of `amounts`. Finally, it MUST throw if the NFT contract does + /// not support the ERC-721 interface or if the bound NFT does not exist. + /// Before binding, tokens MUST be transferred to the contract address of + /// the NFT. On bind completion, the function MUST emit `TransferBatch` and + /// `BindBatch` events to reflect the batch token transfers and bind. /// @param from The owner address of the unbound tokens. - /// @param to The delegate owner address of the bound tokens (SHOULD be `bindAddress`). - /// @param tokenIds The identifiers of the token types being bound. - /// @param amounts The number of tokens for each token type being bound. - /// @param bindIds The identifiers of the assets being bound to. - /// @param bindAddress The contract address handling asset ownership. - /// @param data Additional data sent with the `onERC1155BatchBind` hook. + /// @param bindAddress The contract address of the NFTs being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenIds The identifiers of the binding token types. + /// @param amounts The number of tokens per type binding to the NFTs. function batchBind( address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, address bindAddress, - bytes calldata data + uint256 bindId, + uint256[] calldata tokenIds, + uint256[] calldata amounts ) external; - /// @notice Revokes delegated ownership of `amount` tokens of type `tokenId` - /// owned by `from` bound to `bindId`, switching ownership to `to`. - /// @dev The function MUST throw unless `msg.sender` is the asset owner or - /// an approved operator. It also MUST throw if `from` is not the asset - /// owner, if fewer than `amount` tokens are bound to the asset, or if `to` - /// is the zero address. Once delegated ownership is revoked, the function - /// MUST check if `bindAddress` is a valid contract (code size > 0), and if - /// so, call `onERC1155Unbind` on it, throwing if the wrong identifier is - /// returned (see "Binding Rules") or if the contract is invalid. The - /// function also MUST check if `to` is a contract, and if so, call on it - /// `onERC1155Received`, throwing if the wrong identifier is returned. On - /// unbind completion, the function MUST emit `Unbind` & `TransferSingle` - /// events to reflect delegated ownership change. - /// @param from The owner address of the bound asset. - /// @param to The owner address of the unbound tokens. - /// @param tokenId The identifier of the token type being unbound. - /// @param amount The number of tokens of type `tokenId` being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param data Additional data sent with the `onERC1155Unbind` hook. + /// @notice Unbinds `amount` tokens of `tokenId` from NFT `bindId` at address `bindAddress`. + /// @dev The function MUST throw unless `msg.sender` is an approved operator + /// for `from`. It also MUST throw if `from` is not the owner of the bound + /// NFT, if the NFT's token balance is fewer than `amount`, or if `to` is + /// the zero address. After unbinding, tokens MUST be transferred to `to`, + /// during which the function MUST check if `to` is a valid contract (code + /// size > 0), and if so, call `onERC1155Received`, throwing if the wrong \ + /// identifier is returned. On unbind completion, the function MUST emit + /// `Unbind` & `Transfer` events to reflect the unbind and transfers. + /// @param from The owner address of the NFT the tokens are bound to. + /// @param to The address of the unbound tokens' new owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token type. + /// @param amount The number of tokens unbinding from the NFT. function unbind( address from, address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId, + uint256 amount ) external; - /// @notice Revokes delegated ownership of `amounts` tokens of `tokenIds` - /// owned by `from` bound to assets `bindIds`, switching ownership to `to`. - /// @dev The function MUST throw unless `msg.sender` is the assets' owner or - /// approved operator. It also MUST throw if the length of `amounts` is not - /// the same as `tokenIds` or `bindIds`, if `from` is not the owner of all - /// assets, if any count in `amounts` is fewer than the number of tokens - /// bound for the corresponding token-asset pair given by `tokenIds` and - /// `bindIds`, or if `to` is the zero address. Once delegated ownership is - /// revoked for all tokens, the function MUST check if `bindAddress` is a - /// valid contract (code size > 0), and if so, call `onERC1155BatchUnbind` - /// on it, throwing if a wrong identifier is returned (see "Binding Rules") - /// or if the contract is invalid. The function also MUST check if `to` is - /// valid contract, and if so, call `onERC1155BatchReceived` on it, - /// throwing if the wrong identifier is returned. On unbind completion, the - /// function MUST emit `BatchUnbind` and `TransferBatch` events to reflect - /// delegated ownership change. - /// @param from The owner address of the bound asset. - /// @param to The owner address of the unbound tokens. - /// @param tokenIds The identifiers of the token types being unbound. - /// @param amounts The number of tokens for each token type being unbound. - /// @param bindIds The identifier of the assets being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param data Additional data sent with the `onERC1155BatchUnbind` hook. + /// @notice Unbinds `amount` tokens of `tokenId` from NFT `bindId` at address `bindAddress`. + /// @dev The function MUST throw unless `msg.sender` is an approved operator + /// for `from`. It also MUST throw if the length of `amounts` is not the + /// same as `tokenIds`, if any balances of `tokenIds` for the NFT is less + /// than that of `amounts`, or if `to` is the zero addresss. After + /// unbinding, tokens MUST be transferred to `to`, during which the + /// function MUST check if `to` is a valid contract (code size > 0), and if + /// so, call `onERC1155BatchReceived`, throwing if the wrong identifier is + /// returned. On unbind completion, the function MUST emit `UnbindBatch` & + /// `TransferBatch` events to reflect the batch unbind and transfers. + /// @param from The owner address of the unbound tokens. + /// @param to The address of the unbound tokens' new owner. + /// @param bindAddress The contract address of the NFTs being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenIds The identifiers of the unbinding token types. + /// @param amounts The number of tokens per type unbinding from the NFTs. function batchUnbind( address from, address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, address bindAddress, - bytes calldata data + uint256 bindId, + uint256[] calldata tokenIds, + uint256[] calldata amounts ) external; - /// @notice Gets the balance of bound tokens of type `tokenId` bound to the - /// asset `bindId` at address `bindAddress`. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param bindId The identifier of the bound asset. - /// @param tokenId The identifier of the counted bound token type. - /// @return The total number of tokens of type `tokenId` bound to the asset. + /// @notice Gets the number of tokens of type `tokenId` bound to NFT `bindId` at address `bindAddress`. + /// @param bindAddress The contract address of the bound NFT. + /// @param bindId The identifier of the bound NFT. + /// @param tokenId The identifier of the token type bound to the NFT. + /// @return The number of tokens of type `tokenId` bound to the NFT. function boundBalanceOf( address bindAddress, uint256 bindId, uint256 tokenId - ) external returns (uint256); - - /// @notice Gets the balance of bound tokens for multiple token types given - /// by `tokenIds` bound to assets `bindIds` at address `bindAddress`. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param bindIds List of bound asset identifiers. - /// @param tokenIds The identifiers of the counted bound token types. - /// @return balances The bound balances for each asset / token type pair. + ) external view returns (uint256); + + /// @notice Gets the number of tokens of types `bindIds` bound to NFTs `bindIds` at address `bindAddress`. + /// @param bindAddress The contract address of the bound NFTs. + /// @param bindIds The identifiers of the bound NFTs. + /// @param tokenIds The identifiers of the token types bound to the NFTs. + /// @return balances The bound balances for each token type / NFT pair. function boundBalanceOfBatch( address bindAddress, uint256[] calldata bindIds, uint256[] calldata tokenIds - ) external returns (uint256[] memory balances); - -} -``` - -**Smart contracts managing assets MUST implement the `IERC1155Binder` interface if they are to accept binds from EIP-1155 bindables.** - -**Implementers of the `IERC1155Binder` interface MUST return `true` if `0x6fc97e78` is passed as the identifier to the `supportsInterface` function.** - -```solidity -pragma solidity ^0.8.16; - -/// @dev Note: the ERC-165 identifier for this interface is 0x6fc97e78. -interface IERC1155Binder /* is IERC165 */ { - - /// @notice Handles binding of an IERC1155Bindable-compliant token type. - /// @dev An IERC1155Bindable-compliant smart contract MUST call this - /// function at the end of a `bind` after ownership is delegated through an - /// asset. The function MUST revert if `to` is not the asset owner or - /// binder address. The function MUST revert if it rejects the bind. If - /// accepting the bind, the function MUST return `bytes4(keccak256("onERC1155Bind(address,address,address,uint256,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the binding token is `msg.sender`. - /// @param operator The address responsible for binding. - /// @param from The owner address of the unbound tokens. - /// @param to The delegate owner address of the bound tokens. - /// @param tokenId The identifier of the token type being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Bind(address,address,address,uint256,uint256,uint256,bytes)"))` - function onERC1155Bind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles binding of multiple IERC1155Bindable-compliant tokens - /// `tokenIds` to multiple assets `bindIds`. - /// @dev An IERC1155Bindable-compliant smart contract MUST call this - /// function at the end of a `batchBind` after delegating ownership of - /// multiple token types to the asset owner. The function MUST revert if - /// `to` is not the asset owner or binder address. The function MUST revert - /// if it rejects the bind. If accepting the bind, the function MUST return - /// `bytes4(keccak256("onERC1155BatchBind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the binding token is `msg.sender`. - /// @param operator The address responsible for performing the binds. - /// @param from The unbound tokens' original owner address. - /// @param to The bound tokens' delegate owner address (SHOULD be `bindAddress`). - /// @param tokenIds The list of token types being bound. - /// @param amounts The number of tokens for each token type being bound. - /// @param bindIds The identifiers of the assets being bound to. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Bind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - function onERC1155BatchBind( - address operator, - address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles unbinding of an IERC1155Bindable-compliant token type. - /// @dev An IERC1155Bindable-compliant contract MUST call this function at - /// the end of an `unbind` after revoking delegated asset ownership. The - /// function MUST revert if `from` is not the asset owner. The function - /// MUST revert if it rejects the unbind. If accepting the unbind, the - /// function MUST return `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the unbinding token is `msg.sender`. - /// @param operator The address responsible for performing the unbind. - /// @param from The owner address of the bound asset. - /// @param to The owner address of the unbound tokens. - /// @param tokenId The token type being unbound. - /// @param amount The number of tokens of type `tokenId` being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256,uint256,uint256,bytes)"))` - function onERC1155Unbind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles unbinding of multiple IERC1155Bindable-compliant token types. - /// @dev An IERC1155Bindable-compliant contract MUST call this function at - /// the end of a `batchUnbind` after revoking asset-delegated ownership. - /// The function MUST revert if `from` is not the asset owner. The function - /// MUST revert if it rejects the unbinds. If accepting the unbinds, the - /// function MUST return `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the unbinding token is `msg.sender`. - /// @param operator The address responsible for performing the unbinds. - /// @param from The owner address of the bound asset. - /// @param to The owner address of the unbound tokens. - /// @param tokenIds The list of token types being unbound. - /// @param amounts The number of tokens for each token type being unbound. - /// @param bindIds The identifiers of the assets being unbound from. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - function onERC1155BatchUnbind( - address operator, - address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - bytes calldata data - ) external returns (bytes4); - - /// @notice Gets the owner address of the asset represented by id `bindId`. - /// @param bindId The identifier of the asset whose owner is being queried. - /// @return The address of the owner of the asset. - function ownerOf(uint256 bindId) external view returns (address); - - /// @notice Checks if an operator can act on behalf of an asset owner. - /// @param owner The owner address of an asset. - /// @param operator The address operating on behalf of the asset owner. - /// @return True if `operator` can act on behalf of `owner`, else False. - function isApprovedForAll(address owner, address operator) external view returns (bool); + ) external view returns (uint256[] memory balances); } ``` -### Rules - -This standard supports two modes of binding, depending on whether ownership is delegated to the asset owner or binder address. - -- _Delegated (RECOMMENDED):_ - - Bindable ownership is delegated to the binder address (`to` is `bindAddress` in a bind). - - Bindable ownership queries return the binder address. - - Bindable transfers MUST always throw. -- _Legacy (NOT RECOMMENDED):_ - - Bindable ownership is delegated to the asset owner address (`to` is the asset owner address in a bind). - - Bindable ownership queries return the asset owner address. - - Bindable transfers MUST always throw, except when invoked as a result of bound assets being transferred. - - Transferrable bound assets MUST keep track of bound tokens following this binding mode. - - On transfer, bound assets MUST invoke ownership transfers for bound tokens following this binding mode. - -_Binders SHOULD choose to only support the "delegated" binding mode by throwing if `to` is not `bindAddress`, otherwise both modes MAY be supported._ - -**_`bind` rules:_** - -- When binding an EIP-721 bindable to an asset: - - MUST throw if caller is not the current NFT owner, the approved address for the NFT, or an approved operator for `from`. - - MUST throw if NFT `tokenId` is already bound. - - MUST throw if `from` is not the NFT owner. - - MUST throw if `to` is not `bindAddress` or the asset owner. - - After above conditions are met, MUST check if `bindAddress` is a smart contract (code size > 0). If so, it MUST call `onERC721Bind` on `bindAddress` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - MUST emit the `Bind` event to reflect asset-bound ownership delegation. - - MUST emit the `Transfer` event if `from` is different than `to` to reflect delegated ownership change. -- When binding an EIP-1155 bindable to an asset: - - MUST throw if caller is not an approved operator for `from`. - - MUST throw if `from` owns fewer than `amount` unbound tokens of type `tokenId`. - - MUST throw if `to` is not `bindAddress` or the asset owner. - - After above conditions are met, MUST check if `bindAddress` is a smart contract (code size > 0). If so, it MUST call `onERC1155Bind` on `bindAddress` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - MUST emit the `Bind` event to reflect asset-bound ownership delegation. - - MUST emit the `TransferSingle` event if `from` is different than `to` to reflect delegated ownership change. - -**_`unbind` rules:_** - -- When unbinding an EIP-721 bindable from an asset: - - MUST throw if caller is not the owner of the asset or an approved asset operator for `from`. - - MUST throw if NFT `tokenId` is not bound. - - MUST throw if `from` is not the asset owner. - - MUST throw if `to` is the zero address. - - After above conditions are met, MUST check if `bindAddress` is a smart contract (code size > 0). If so, it MUST call `onERC721Unbind` on `bindAddress` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - In addition, it MUST check if `to` is a smart contract (code size > 0), and call `onERC721Received` on `to` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - MUST emit the `Unbind` event to reflect asset-bound ownership revocation. - - MUST emit the `Transfer` event if `from` is different than `to` to reflect delegated ownership change. -- When unbinding a an EIP-1155 bindable from an asset: - - MUST throw if caller is not the owner of the asset or an approved asset operator for `from`. - - MUST throw if `from` is not the asset owner. - - MUST throw if fewer than `amount` tokens of type `tokenId` are bound to `bindId`. - - MUST throw if `to` is the zero address. - - After above conditions are met, MUST check if `bindAddress` is a smart contract (code size > 0). If so, it MUST call `onERC1155Unbind` on `bindAddress` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - In addition, it MUST check if `to` is a smart contract (code size > 0), and call `onERC1155Received` on `to` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - MUST emit the `Unbind` event to reflect asset-bound ownership revocation. - - MUST emit the `TransferSingle` event if `from` is different than `to` to reflect delegated ownership change. - -**_`batchBind` & `batchUnbind` rules:_** - -- When performing a `batchBind` on EIP-1155 bindables: - - MUST throw if caller is not an approved operator for `from`. - - MUST throw if length of `tokenIds` is not the same as that of `amounts` or `bindIds`. - - MUST throw if any unbound token balances of `tokenIds` for `from` are less than that of `amounts`. - - MUST throw if `to` is not `bindAddress` or the asset owner. - - After above conditions are met, MUST check if `bindAddress` is a smart contract (code size > 0). If so, it MUST call `onERC1155BatchBind` on `bindAddress` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - MUST emit either `Bind` or `BindBatch` events to properly reflect asset-delegated ownership attribution for all bound tokens. - - MUST emit either `TransferSingle` or `TransferBatch` events if `from` is different than `to` to reflect delegated ownership changes for all tokens. -- When performing a `batchUnbind` on EIP-1155 bindables: - - MUST throw if caller is not the owner of all assets or an approved asset operator for `from`. - - MUST throw if length of `tokenIds` is not the same as that of `amounts` or `bindIds`. - - MUST throw if `from` is not the owner of all assets. -- MUST throw if any count in `amounts` is fewer than the number of tokens bound for the corresponding token-asset pair given by `tokenIds` and `bindIds`. - - MUST throw if `to` is the zero address. - - After above conditions are met, MUST check if `bindAddress` is a smart contract (code size > 0). If so, it MUST call `onERC1155Unbind` on `bindAddress` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - In addition, it MUST check if `to` is a smart contract (code size > 0), and call `onERC1155Received` on `to` with `data` passed unaltered and act appropriately (see "Hook Rules"). - - MUST emit `Bind` event to reflect asset-bound ownership revocation. - - MUST emit the `TransferSingle` event if `from` is different than `to` to reflect delegated ownership change. - -**_`Bind` event rules:_** - -- When emitting an EIP-721 bindable `Bind` event: - - SHOULD be emitted to indicate a single bind has occurred between a `tokenId` and `bindId` pair. - - MAY be emitted multiple times to indicate multiple binds have occurred in a single transaction. - - The `operator` argument MUST be the owner of the NFT `tokenId`, the approved address for the NFT, or the authorized operator of `from`. - - The `from` argument MUST be the owner of the NFT `tokenId`. - - The `to` argument MUST be `binderAddress` (indicates "delegated" bind) or the owner of the bound asset (indicates "legacy" bind). - - The `tokenId` argument MUST be the NFT being bound. - - The `bindId` argument MUST be the identifier of the asset being bound to. - - The `bindAddress` argument MUST be the contract address of the asset being bound to. - - When minting NFTs bound to an asset, the `Bind` event must be emitted with the `from` argument set to `0x0`. - - `Bind` events MUST be emitted to reflect asset-bound ownership delegation before calls to `onERC721Bind`. -- When emitting an EIP-1155 bindable `Bind` event: - - SHOULD be emitted to indicate a bind has occurred between a single `tokenId` type and `binderId` pair. - - MAY be emitted multiple times to indicate multiple binds have occurred in a single transaction, but `BindBatch` should be preferred in this case to reduce gas consumption. - - The `operator` argument MUST be an authorized operator for `from`. - - The `from` argument MUST be the owner of the unbound tokens. - - The `to` argument MUST be `binderAddress` (indicates "delegated" bind) or the owner of the bound asset `bindId` (indicates "legacy" bind). - - The `tokenId` argument MUST be the token type being bound. - - The `amount` argument MUST be the number of tokens of type `tokenId` being bound. - - The `bindId` argument MUST be the identifier of the asset being bound to. - - The `bindAddress` argument MUST be the contract address of the asset being bound to. - - When minting NFTs bound to an asset, the `Bind` event must be emitted with the `from` argument set to `0x0`. - - `Bind` events MUST be emitted to reflect asset-bound ownership delegation before calls to `onERC1155Bind` or `onERC1155BindBatch`. - -**_`Unbind` event rules:_** - -- When emitting an EIP-721 bindable `Unbind` event: - - SHOULD be emitted to indicate a single unbind has occurred between a `tokenId` and `bindId` pair. - - MAY be emitted multiple times to indicate multiple unbinds have occurred in a single transaction. - - The `operator` argument MUST be the owner of the asset or an approved asset operator for `from`. - - The `from` argument MUST be the owner of the asset. - - The `to` argument MUST be the recipient address of the unbound NFT. - - The `tokenId` argument MUST be the NFT being unbound. - - The `bindId` argument MUST be the identifier of the asset being unbound from. - - The `bindAddress` argument MUST be the contract address of the asset being unbound from. - - When burning NFTs bound to an asset, the `Bind` event must be emitted with the `to` argument set to `0x0`. - - `Bind` events MUST be emitted to reflect delegated ownership revocation changes before calls to `onERC721Unbind`. -- When emitting an EIP-1155 bindable `Unbind` event: - - SHOULD be emitted to indicate an unbind has occurred between a single `tokenId` type and `binderId` pair. - - MAY be emitted multiple times to indicate multiple unbinds have occurred in a single transaction, but `UnbindBatch` should be preferred in this case to reduce gas consumption. - - The `operator` argument MUST be the owner of the asset or an approved asset operator for `from`. - - The `from` argument MUST be the asset owner. - - The `to` argument MUST be the recipient address of the unbound tokens. - - The `tokenId` argument MUST be the token type being unbound. - - The `amount` argument MUST be the number of tokens of type `tokenId` being unbound. - - The `bindId` argument MUST be the identifier of the asset being unbound from. - - The `bindAddress` argument MUST be the contract address of the asset being unbound from. - - When burning NFTs bound to an asset, the `Bind` event must be emitted with the `to` argument set to `0x0`. - - `Bind` events MUST be emitted to reflect delegated ownership revocation changes before calls to `onERC1155Unbind` or `onERC1155UnbindBatch` - -**_`BindBatch` & `UnbindBatch` event rules:_** - -- When emitting a `BindBatch` event: - - SHOULD be emitted to indicate a bind has occurred between multiple `tokenId` and `binderId` pairs. - - The `operator` argument MUST be an authorized operator for `from`. - - The `from` argument MUST be the owner of the unbound tokens. - - The `to` argument MUST be `binderAddress` (indicates "delegated" bind) or the owner of the bound asset (indicates "legacy" bind). - - The `tokenIds` argument MUST be the identifiers of the token types being bound. - - The `amounts` argument MUST be the number of tokens for each type in `tokenIds` being bound. - - The `bindIds` argument MUST be the identifiers for all assets being bound to. - - The `bindAddress` argument MUST be the contract address of the assets being bound to. - - When batch minting NFTs bound to an asset, the `BindBatch` event must be emitted with the `from` argument set to `0x0`. - - `BindBatch` events MUST be emitted to reflect asset-bound ownership delegation before calls to `onERC1155BindBatch` -- When emitting a `batchUnbind` event: - - SHOULD be emitted to indicate an unbind has occurred between multiple `tokenId` and `binderId` pairs. - - The `operator` argument MUST be an authorized operator or owner of the asset. - - The `from` argument MUST be the owner of all assets. - - The `to` argument MUST be the recipient address of the unbound tokens. - - The `tokenIds` argument MUST be the identifiers of the token types being unbound. - - The `amounts` argument MUST be the number of tokens for each type `tokenId` being unbound. - - The `bindIds` argument MUST be the identifiers for the assets being unbound from. - - The `bindAddress` argument MUST be the contract address of the assets being unbound from. - - When burning tokens bound to an asset, the `UnbindBatch` event must be emitted with the `to` argument set to `0x0`. - - `UnbindBatch` events MUST be emitted to reflect asset-delegated ownership changes before calls to `onERC1155UnbindBatch` - -**_`bind` hook rules:_** - -- The `operator` argument MUST be the address calling the bind hook. -- The `from` argument MUST be the owner of the NFT or token type being bound. - - FROM must be `0x0` for a mint. -- The `to` argument MUST be `binderAddress` (indicates "delegated" bind) or the owner of the bound asset (indicates "legacy" bind). - - The binder contract MAY choose to reject legacy binds. -- For `onERC721Bind` / `onERC1155Bind`, the `tokenId` argument MUST be the NFT / token type being bound. -- For `onERC1155BatchBind`, `tokenIds` MUST be the list of token types being bound. -- For `onERC1155Bind`, the `amount` argument MUST be the number of tokens of type `tokenId` being bound. -- For `onERC1155BatchBind`, the `amounts` argument MUST be a list of the number of tokens of each token type being bound. -- For `onERC721Bind` / `onERC1155Bind`, the `bindId` argument MUST be the identifier for the asset being bound to. -- For `onERC1155BatchBind`, `bindIds` MUST be the list of assets being bound to. -- The `data` argument MUST contain data provided by the caller for the bind with contents unaltered. -- The binder contract MAY accept the bind by returning the binder call's designated magic value, in which case the bind MUST complete or revert if any other conditions for success are not met: - - `onERC721Bind`: `bytes4(keccak256("onERC721Bind(address,address,address,uint256,uint256,bytes)"))` - - `onERC1155Bind`: `bytes4(keccak256("onERC1155Bind(address,address,address,uint256,uint256,uint256,bytes)"))` - - `onERC1155BindBatch`: `bytes4(keccak256("onERC1155BindBatch(address,address,address,uint256[],uint256[],uint256[],bytes)"))` -- The binder contract MAY reject the bind by calling revert. -- A return of any other value than the designated magic value MUST result in the transaction being reverted by the caller. - -**_`unbind` hook rules:_** - -- The `operator` argument MUST be the address calling the unbind hook. -- The `from` argument MUST be the asset owner. -- The `to` argument MUST the the recipient address of the unbound NFT or token type. - - TO must be `0x0` for a burn. -- For `onERC721Unbind` / `onERC1155Unbind`, the `tokenId` argument MUST be the NFT / token type being unbound. -- For `onERC1155BatchUnbind`, `tokenIds` MUST be the list of token types being unbound. -- For `onERC1155Unbind`, the `amount` argument MUST be the number of tokens of type `tokenId` being unbound. -- For `onERC1155BatchUnbind`, the `amounts` argument MUST be a list of the number of tokens of each token type being unbound. -- For `onERC721Bind` / `onERC1155Bind`, the `bindId` argument MUST be the identifier for the asset being unbound from. -- For `onERC1155BatchBind`, `bindIds` MUST be the list of assets being unbound from. -- The `data` argument MUST contain data provided by the caller for the bind with contents unaltered. -- The binder contract MAY accept the unbind by returning the binder call's designated magic value, in which case the unbind MUST complete or MUST revert if any other conditions for success are not met: - - `onERC721Unbind`: `bytes4(keccak256("onERC721Unbind(address,address,address,uint256,uint256,bytes)"))` - - `onERC1155Unbind`: `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256,uint256,uint256,bytes)"))` - - `onERC1155UnbindBatch`: `bytes4(keccak256("onERC1155UnbindBatch(address,address,address,uint256[],uint256[],uint256[],bytes)"))` -- The binder contract MAY reject the bind by calling revert. -- A return of any other value than the designated magic value MUST result in the transaction being reverted by the caller. - ## Rationale -A backwards-compatible standard for token binding unlocks a new layer of composability for allowing wallets, applications, and protocols to interact with, trade and display bundled assets. One example use-case of this is at Dopamine, where microchipped streetwear garments may be bundled with NFTs such as music, avatars, or digital-twins of the garments themselves, by linking chips to binder smart contracts capable of accepting token binds. +A standard for token binding unlocks a new layer of composability for allowing wallets, applications, and protocols to interact with, trade, and display bundled NFTs. One example use-case of this is at Dopamine, where streetwear garments may be bundled with digital assets such as music, avatars, or digital-twins of the garments, by representing these assets as bindable tokens and binding them to microchips represented as NFTs. ### Binding Mechanism -In the “delegated” mode, because token ownership is attributed to the contract address of the asset it is bound to, asset ownership modifications are completely decoupled from bound tokens, making bundled transfers efficient as no state management overhead is imposed. This is the recommended binding mode. - -The “legacy” binding mode was included purely for backwards-compatibility purposes, so that existing applications that have yet to integrate the standard can still display bundled tokens out-of-the-box. Here, since token ownership is attributed to the owner of the bound asset, asset ownership modifications are coupled to that of its bound tokens, making bundled transfers inefficient as binder contracts are required to track all bound tokens. - -Binder and bindable implementations MAY choose to support both modes of binding. - -### Transfer Mechanism - -One important consideration was whether binds should support transfers or not. Indeed, it would be much simpler for binds and unbinds to be processed only by addresses who owns both the bindable tokens and assets being bound to. Going this route, binds would not require any dependence on transfers, as asset-delegated ownership would not change, and applications could simply transfer the assets themselves following prescribed asset transfer rules. However, this was ruled out due to the lack of flexibility offered, especially around friction added for consumers wishing to bind their tokens to unowned assets. +During binding, a bindable token's technical ownership is conferred to its bound NFT, while allowing the NFT owner to unbind at any time. A caveat of this lightweight design is that applications that have yet to adopt this standard will not show the bundled tokens as owned by the NFT owner. ## Backwards Compatibility -The bindable interface is designed to be compatible with existing EIP-721 and EIP-1155 standards. +The bindable token interface is designed to be compatible with existing ERC-721 and ERC-1155 standards. ## Reference Implementation -For reference EIP-721 implementations supporting "delegated" and "legacy" binding modes: - -- [EIP-721 Bindable](../assets/eip-5700/erc721/ERC721Bindable.sol). -- [EIP-721 Binder](../assets/eip-5700/erc721/ERC721Binder.sol). - -For reference EIP-1155 implementations supporting only the "delegated" binding mode: - -- [EIP-1155 Bindable](../assets/eip-5700/erc1155/ERC1155Bindable.sol). -- [EIP-1155 Binder](../assets/eip-5700/erc1155/ERC1155Binder.sol). +- [ERC-721 Bindable](../assets/eip-5700/erc721/ERC721Bindable.sol). +- [ERC-1155 Bindable](../assets/eip-5700/erc1155/ERC1155Bindable.sol). ## Security Considerations -Bindable contracts supporting the "legacy" binding mode should be cautious with authorizing transfers once their tokens are bound. These should only be authorized as a result of their bound assets being transferred, and careful consideration must be taken when ensuring account balances are properly processed. - -Binder contracts supporting the "legacy" binding mode must ensure that any accepted binds are tracked, and that asset transfers result in proper changing of bound token ownership. +During binding, because ownership is conferred to the bound NFT contract, implementations should take caution in ensuring unbinding may only be performed by the designated NFT owner. ## Copyright diff --git a/assets/eip-5700/erc1155/ERC1155Bindable.sol b/assets/eip-5700/erc1155/ERC1155Bindable.sol index d7615a2695530f..b55f361aca6c3f 100644 --- a/assets/eip-5700/erc1155/ERC1155Bindable.sol +++ b/assets/eip-5700/erc1155/ERC1155Bindable.sol @@ -1,19 +1,18 @@ // SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; +pragma solidity ^0.8.20; import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; +import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; import {IERC1155Receiver} from "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; import {ERC1155} from "./ERC1155.sol"; import {IERC1155Bindable} from "../interfaces/IERC1155Bindable.sol"; -import {IERC1155Binder} from "../interfaces/IERC1155Binder.sol"; /// @title ERC-1155 Bindable Reference Implementation. -/// @dev Only supports the "delegated" binding mode. contract ERC1155Bindable is ERC1155, IERC1155Bindable { /// @notice Tracks the bound balance of an asset for a specific token type. - mapping(address => mapping(uint256 => mapping(uint256 => uint256))) public boundBalanceOf; + mapping(address => mapping(uint256 => mapping(uint256 => uint256))) public boundBalanceOf; /// @dev EIP-165 identifiers for all supported interfaces. bytes4 private constant _ERC165_INTERFACE_ID = 0x01ffc9a7; @@ -42,101 +41,88 @@ contract ERC1155Bindable is ERC1155, IERC1155Bindable { /// @inheritdoc IERC1155Bindable function bind( address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId, + uint256 amount ) public { if (msg.sender != from && !isApprovedForAll[from][msg.sender]) { revert SenderUnauthorized(); } - IERC1155Binder binder = IERC1155Binder(bindAddress); - if (to != bindAddress) { - revert BinderInvalid(); - } + if (IERC721(bindAddress).ownerOf(bindId) == address(0)) { + revert BindInvalid(); + } boundBalanceOf[bindAddress][bindId][tokenId] += amount; _balanceOf[from][tokenId] -= amount; - _balanceOf[to][tokenId] += amount; - - emit Bind(msg.sender, from, bindAddress, tokenId, amount, bindId, bindAddress); - emit TransferSingle(msg.sender, from, bindAddress, tokenId, amount); + _balanceOf[bindAddress][tokenId] += amount; - if ( - binder.onERC1155Bind(msg.sender, from, to, tokenId, amount, bindId, data) - != - IERC1155Binder.onERC1155Bind.selector - ) { - revert BindInvalid(); - } + emit TransferSingle(msg.sender, from, bindAddress, tokenId, amount); + emit Bind(msg.sender, from, bindAddress, bindId, tokenId, amount); } - /// @inheritdoc IERC1155Bindable + /// @notice Binds `amounts` tokens of `tokenIds` to NFT `bindId` at address `bindAddress`. + /// @param from The owner address of the unbound tokens. + /// @param bindAddress The contract address of the NFTs being bound to. + /// @param bindId The identifiers of the NFT being bound to. + /// @param tokenIds The identifiers of the binding token types. + /// @param amounts The number of tokens per type binding to the NFTs. function batchBind( address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, address bindAddress, - bytes calldata data + uint256 bindId, + uint256[] calldata tokenIds, + uint256[] calldata amounts ) public { if (msg.sender != from && !isApprovedForAll[from][msg.sender]) { revert SenderUnauthorized(); } - IERC1155Binder binder = IERC1155Binder(bindAddress); - if (to != bindAddress) { - revert BinderInvalid(); - } + if (IERC721(bindAddress).ownerOf(bindId) == address(0)) { + revert BindInvalid(); + } - if (tokenIds.length != amounts.length || tokenIds.length != bindIds.length) { + if (tokenIds.length != amounts.length) { revert ArityMismatch(); } for (uint256 i = 0; i < tokenIds.length; i++) { - - boundBalanceOf[bindAddress][bindIds[i]][tokenIds[i]] += amounts[i]; _balanceOf[from][tokenIds[i]] -= amounts[i]; - _balanceOf[to][tokenIds[i]] += amounts[i]; + _balanceOf[bindAddress][tokenIds[i]] += amounts[i]; + boundBalanceOf[bindAddress][bindId][tokenIds[i]] += amounts[i]; } - - emit BindBatch(msg.sender, from, bindAddress, tokenIds, amounts, bindIds, bindAddress); - emit TransferBatch(msg.sender, from, bindAddress, tokenIds, amounts); - if ( - binder.onERC1155BatchBind(msg.sender, from, to, tokenIds, amounts, bindIds, data) - != - IERC1155Binder.onERC1155Bind.selector - ) { - revert BindInvalid(); - } + emit TransferBatch(msg.sender, from, bindAddress, tokenIds, amounts); + emit BindBatch(msg.sender, from, bindAddress, bindId, tokenIds, amounts); } - /// @inheritdoc IERC1155Bindable + /// @notice Unbinds `amount` tokens of `tokenId` from NFT `bindId` at address `bindAddress`. + /// @param from The owner address of the NFT the tokens are bound to. + /// @param to The address of the unbound tokens' new owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token type. + /// @param amount The number of tokens unbinding from the NFT. function unbind( address from, address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId, + uint256 amount ) public { - IERC1155Binder binder = IERC1155Binder(bindAddress); - if ( - binder.ownerOf(bindId) != from - ) { - revert BinderInvalid(); + IERC721 binder = IERC721(bindAddress); + + if (binder.ownerOf(bindId) != from) { + revert OwnerInvalid(); } if ( msg.sender != from && + msg.sender != binder.getApproved(tokenId) && !binder.isApprovedForAll(from, msg.sender) ) { revert SenderUnauthorized(); @@ -147,20 +133,12 @@ contract ERC1155Bindable is ERC1155, IERC1155Bindable { } _balanceOf[to][tokenId] += amount; - _balanceOf[from][tokenId] -= amount; + _balanceOf[bindAddress][tokenId] -= amount; boundBalanceOf[bindAddress][bindId][tokenId] -= amount; - emit Bind(msg.sender, bindAddress, to, tokenId, amount, bindId, bindAddress); + emit Unbind(msg.sender, bindAddress, to, bindAddress, bindId, tokenId, amount); emit TransferSingle(msg.sender, bindAddress, to, tokenId, amount); - if ( - binder.onERC1155Unbind(msg.sender, from, to, tokenId, amount, bindId, data) - != - IERC1155Binder.onERC1155Unbind.selector - ) { - revert BindInvalid(); - } - if ( to.code.length != 0 && IERC1155Receiver(to).onERC1155Received(msg.sender, from, amount, tokenId, "") @@ -169,57 +147,54 @@ contract ERC1155Bindable is ERC1155, IERC1155Bindable { ) { revert SafeTransferUnsupported(); } - } - /// @inheritdoc IERC1155Bindable + /// @notice Unbinds `amount` tokens of `tokenId` from NFT `bindId` at address `bindAddress`. + /// @param from The owner address of the unbound tokens. + /// @param to The address of the unbound tokens' new owner. + /// @param bindAddress The contract address of the NFTs being unbound from. + /// @param bindId The identifiers of the NFT being unbound from. + /// @param tokenIds The identifiers of the unbinding token types. + /// @param amounts The number of tokens per type unbinding from the NFTs. function batchUnbind( address from, address to, + address bindAddress, + uint256 bindId, uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - address bindAddress, - bytes calldata data + uint256[] calldata amounts ) public { - IERC1155Binder binder = IERC1155Binder(bindAddress); + IERC721 binder = IERC721(bindAddress); + + if (binder.ownerOf(bindId) != from) { + revert OwnerInvalid(); + } if ( msg.sender != from && + msg.sender != binder.getApproved(bindId) && !binder.isApprovedForAll(from, msg.sender) ) { revert SenderUnauthorized(); } - if (to == address(0)) { - revert ReceiverInvalid(); + if (tokenIds.length != amounts.length) { + revert ArityMismatch(); } - if (tokenIds.length != amounts.length || tokenIds.length != bindIds.length) { - revert ArityMismatch(); + if (to == address(0)) { + revert ReceiverInvalid(); } for (uint256 i = 0; i < tokenIds.length; i++) { - if (binder.ownerOf(bindIds[i]) != from) { - revert BinderInvalid(); - } - _balanceOf[to][tokenIds[i]] += amounts[i]; - _balanceOf[from][tokenIds[i]] -= amounts[i]; - boundBalanceOf[bindAddress][bindIds[i]][tokenIds[i]] -= amounts[i]; + _balanceOf[bindAddress][tokenIds[i]] -= amounts[i]; + boundBalanceOf[bindAddress][bindId][tokenIds[i]] -= amounts[i]; } - - emit UnbindBatch(msg.sender, from, bindAddress, tokenIds, amounts, bindIds, bindAddress); - emit TransferBatch(msg.sender, from, bindAddress, tokenIds, amounts); - if ( - binder.onERC1155BatchUnbind(msg.sender, from, to, tokenIds, amounts, bindIds, data) - != - IERC1155Binder.onERC1155BatchUnbind.selector - ) { - revert BindInvalid(); - } + emit UnbindBatch(msg.sender, from, to, bindAddress, bindId, tokenIds, amounts); + emit TransferBatch(msg.sender, from, bindAddress, tokenIds, amounts); if ( to.code.length != 0 && @@ -231,7 +206,6 @@ contract ERC1155Bindable is ERC1155, IERC1155Bindable { } } - function supportsInterface(bytes4 id) public pure override(ERC1155, IERC165) returns (bool) { return super.supportsInterface(id) || id == _ERC1155_BINDABLE_INTERFACE_ID; } diff --git a/assets/eip-5700/erc1155/ERC1155Binder.sol b/assets/eip-5700/erc1155/ERC1155Binder.sol deleted file mode 100644 index 2ac1dcb5762d3e..00000000000000 --- a/assets/eip-5700/erc1155/ERC1155Binder.sol +++ /dev/null @@ -1,108 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; -import {IERC1155} from "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; - -import {IERC1155Bindable} from "../interfaces/IERC1155Bindable.sol"; -import {IERC1155Binder} from "../interfaces/IERC1155Binder.sol"; - -/// @title ERC-1155 Binder Reference Implementation -contract ERC1155Binder is IERC1155Binder { - - struct Bindable { - address tokenAddress; - uint256 tokenId; - } - - /// @notice Checks for an owner if an address is an authorized operator. - mapping(address => mapping(address => bool)) public _isApprovedForAll; - - /// @notice Tracks ownership of bound assets. - mapping(uint256 => address) _ownerOf; - - /// @dev EIP-165 identifiers for all supported interfaces. - bytes4 private constant _ERC165_INTERFACE_ID = 0x01ffc9a7; - bytes4 private constant _ERC1155_BINDER_INTERFACE_ID = 0x2ac2d2bc; - bytes4 private constant _ERC1155_BINDABLE_INTERFACE_ID = 0xd92c3ff0; - - /// @inheritdoc IERC1155Binder - function isApprovedForAll(address owner, address operator) external view override returns (bool) { - return _isApprovedForAll[owner][operator]; - } - - /// @inheritdoc IERC1155Binder - function ownerOf(uint256 id) public view returns (address) { - return _ownerOf[id]; - } - - /// @inheritdoc IERC1155Binder - function onERC1155Bind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, - bytes calldata data - ) public returns (bytes4) { - return IERC1155Binder.onERC1155Bind.selector; - } - - /// @inheritdoc IERC1155Binder - function onERC1155BatchBind( - address operator, - address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - bytes calldata data - ) public returns (bytes4) { - return IERC1155Binder.onERC1155BatchBind.selector; - } - - /// @inheritdoc IERC1155Binder - function onERC1155Unbind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, - bytes calldata data - ) public returns (bytes4) { - return IERC1155Binder.onERC1155Unbind.selector; - } - - /// @inheritdoc IERC1155Binder - function onERC1155BatchUnbind( - address operator, - address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - bytes calldata data - ) public returns (bytes4) { - return IERC1155Binder.onERC1155BatchUnbind.selector; - } - - function supportsInterface(bytes4 id) external pure returns (bool) { - return id == _ERC165_INTERFACE_ID || id == _ERC1155_BINDER_INTERFACE_ID; - } - - /// @notice Mints a new asset identified by `id` to address `to`. - function _mint(address to, uint256 id) internal { - if (to == address(0)) { - revert ReceiverInvalid(); - } - - if (_ownerOf[id] != address(0)) { - revert AssetAlreadyMinted(); - } - - _ownerOf[id] = to; - } - -} diff --git a/assets/eip-5700/erc721/ERC721Bindable.sol b/assets/eip-5700/erc721/ERC721Bindable.sol index d772721e6cc5aa..d71916ff069fd2 100644 --- a/assets/eip-5700/erc721/ERC721Bindable.sol +++ b/assets/eip-5700/erc721/ERC721Bindable.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; +pragma solidity ^0.8.20; import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; @@ -7,22 +7,20 @@ import {IERC721Receiver} from "@openzeppelin/contracts/token/ERC721/IERC721Recei import {ERC721} from "./ERC721.sol"; import {IERC721Bindable} from "../interfaces/IERC721Bindable.sol"; -import {IERC721Binder} from "../interfaces/IERC721Binder.sol"; /// @title ERC-721 Bindable Reference Implementation. -/// @dev Supports both "legacy" and "delegated" binding modes. contract ERC721Bindable is ERC721, IERC721Bindable { - /// @notice Encapsulates a bound asset contract address and identifier. + /// @notice Encapsulates a bound NFT contract address and identifier. struct Binder { address bindAddress; uint256 bindId; } - /// @notice Tracks the bound balance of a specific asset. + /// @notice Tracks the token balance for a token-bound NFT. mapping(address => mapping(uint256 => uint256)) public boundBalanceOf; - /// @notice Tracks bound assets of an NFT. + /// @notice Tracks NFTs that bindable tokens are bound to. mapping(uint256 => Binder) internal _bound; /// @dev EIP-165 identifiers for all supported interfaces. @@ -30,35 +28,36 @@ contract ERC721Bindable is ERC721, IERC721Bindable { bytes4 private constant _ERC721_BINDER_INTERFACE_ID = 0x2ac2d2bc; bytes4 private constant _ERC721_BINDABLE_INTERFACE_ID = 0xd92c3ff0; - /// @inheritdoc IERC721Bindable - function binderOf(uint256 tokenId) public returns (address, uint256) { + /// @notice Gets the NFT address and identifier token `tokenId` is bound to. + /// @param tokenId The identifier of the token being queried. + /// @return The token-bound NFT contract address and numerical identifier. + function binderOf(uint256 tokenId) public view returns (address, uint256) { Binder memory bound = _bound[tokenId]; return (bound.bindAddress, bound.bindId); } - /// @inheritdoc IERC721Bindable + /// @notice Binds token `tokenId` to NFT `bindId` at address `bindAddress`. + /// @param from The address of the unbound token owner. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of the binding token. function bind( address from, - address to, - uint256 tokenId, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId ) public { - if (_bound[tokenId].bindAddress != address(0)) { - revert BindExistent(); + if ( + _bound[tokenId].bindAddress != address(0) || + IERC721(bindAddress).ownerOf(bindId) == address(0) + ) { + revert BindInvalid(); } if (from != _ownerOf[tokenId]) { revert OwnerInvalid(); } - IERC721Binder binder = IERC721Binder(bindAddress); - address assetOwner = binder.ownerOf(bindId); - if (to != assetOwner && to != bindAddress) { - revert BinderInvalid(); - } - if ( msg.sender != from && msg.sender != getApproved[tokenId] && @@ -72,51 +71,48 @@ contract ERC721Bindable is ERC721, IERC721Bindable { unchecked { _balanceOf[from]--; _balanceOf[bindAddress]++; - _balanceOf[assetOwner]++; boundBalanceOf[bindAddress][bindId]++; } - _ownerOf[tokenId] = to; + _ownerOf[tokenId] = bindAddress; _bound[tokenId] = Binder(bindAddress, bindId); - emit Bind(msg.sender, from, to, tokenId, bindId, bindAddress); - emit Transfer(from, to, tokenId); - - if ( - binder.onERC721Bind(msg.sender, from, to, tokenId, bindId, "") - != - IERC721Binder.onERC721Bind.selector - ) { - revert BindInvalid(); - } + emit Transfer(from, bindAddress, tokenId); + emit Bind(msg.sender, from, bindAddress, bindId, tokenId); } - /// @inheritdoc IERC721Bindable + /// @notice Unbinds token `tokenId` from NFT `bindId` at address `bindAddress`. + /// @param from The address of the owner of the NFT the token is bound to. + /// @param to The address of the unbound token new owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token. function unbind( address from, address to, - uint256 tokenId, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId ) public { Binder memory bound = _bound[tokenId]; - if (bound.bindAddress != address(0)) { - revert BindNonexistent(); + if ( + bound.bindAddress != bindAddress || + bound.bindId != bindId || + _ownerOf[tokenId] != bindAddress + ) { + revert BindInvalid(); } - IERC721Binder binder = IERC721Binder(bindAddress); - if ( - bound.bindAddress != bindAddress || - bound.bindId != bindId || - binder.ownerOf(bindId) != from - ) { - revert BinderInvalid(); + IERC721 binder = IERC721(bindAddress); + + if (from != binder.ownerOf(bindId)) { + revert OwnerInvalid(); } if ( msg.sender != from && + msg.sender != binder.getApproved(tokenId) && !binder.isApprovedForAll(from, msg.sender) ) { revert SenderUnauthorized(); @@ -126,13 +122,10 @@ contract ERC721Bindable is ERC721, IERC721Bindable { revert ReceiverInvalid(); } - address delegatedOwner = _ownerOf[tokenId]; - delete getApproved[tokenId]; unchecked { _balanceOf[to]++; - _balanceOf[from]--; _balanceOf[bindAddress]--; boundBalanceOf[bindAddress][bindId]--; } @@ -140,20 +133,12 @@ contract ERC721Bindable is ERC721, IERC721Bindable { _ownerOf[tokenId] = to; delete _bound[tokenId]; - emit Bind(msg.sender, from, to, tokenId, bindId, bindAddress); - emit Transfer(delegatedOwner, to, tokenId); - - if ( - binder.onERC721Unbind(msg.sender, from, to, tokenId, bindId, "") - != - IERC721Binder.onERC721Unbind.selector - ) { - revert BindInvalid(); - } + emit Unbind(msg.sender, from, to, bindAddress, bindId, tokenId); + emit Transfer(bindAddress, to, tokenId); if ( to.code.length != 0 && - IERC721Receiver(to).onERC721Received(msg.sender, delegatedOwner, tokenId, "") + IERC721Receiver(to).onERC721Received(msg.sender, bindAddress, tokenId, "") != IERC721Receiver.onERC721Received.selector ) { @@ -162,47 +147,6 @@ contract ERC721Bindable is ERC721, IERC721Bindable { } - /// @inheritdoc IERC721 - function transferFrom( - address from, - address to, - uint256 tokenId - ) public override(IERC721, ERC721) { - - address bindAddress = _bound[tokenId].bindAddress; - uint256 bindId = _bound[tokenId].bindId; - - if (bindAddress == address(0)) { - return super.transferFrom(from, to, tokenId); - } - - if (msg.sender != bindAddress) { - revert BindExistent(); - } - - IERC721Binder binder = IERC721Binder(bindAddress); - - if ( - binder.ownerOf(bindId) != from - ) { - revert BinderInvalid(); - } - - if (to == address(0)) { - revert ReceiverInvalid(); - } - - delete getApproved[tokenId]; - - uint256 bindBal = boundBalanceOf[bindAddress][bindId]; - unchecked { - _balanceOf[from] -= bindBal; - _balanceOf[to] += bindBal; - } - - emit Transfer(from, to, tokenId); - } - function supportsInterface(bytes4 id) public pure override(ERC721, IERC165) returns (bool) { return super.supportsInterface(id) || id == _ERC721_BINDABLE_INTERFACE_ID; } diff --git a/assets/eip-5700/erc721/ERC721Binder.sol b/assets/eip-5700/erc721/ERC721Binder.sol deleted file mode 100644 index e8f939aae7b15f..00000000000000 --- a/assets/eip-5700/erc721/ERC721Binder.sol +++ /dev/null @@ -1,135 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; - -import {ERC721} from "./ERC721.sol"; -import {IERC721Bindable} from "../interfaces/IERC721Bindable.sol"; -import {IERC721Binder} from "../interfaces/IERC721Binder.sol"; - -/// @title ERC-721 Binder Reference Implementation -contract ERC721Binder is IERC721Binder { - - struct Bindable { - address tokenAddress; - uint256 tokenId; - } - - /// @notice Checks for an owner if an address is an authorized operator. - mapping(address => mapping(address => bool)) public _isApprovedForAll; - - /// @notice Tracks ownership of bound assets. - mapping(uint256 => address) _ownerOf; - - /// @notice Maps an asset to a list of all bound bindables. - mapping(uint256 => Bindable[]) _boundTokens; - - /// @notice Maps a token address and identifier to the bound tokens index. - mapping(address => mapping(uint256 => uint256)) _boundIndexes; - - /// @dev EIP-165 identifiers for all supported interfaces. - bytes4 private constant _ERC165_INTERFACE_ID = 0x01ffc9a7; - bytes4 private constant _ERC721_BINDER_INTERFACE_ID = 0x2ac2d2bc; - bytes4 private constant _ERC721_BINDABLE_INTERFACE_ID = 0xd92c3ff0; - - /// @inheritdoc IERC721Binder - function isApprovedForAll(address owner, address operator) external view override returns (bool) { - return _isApprovedForAll[owner][operator]; - } - - /// @inheritdoc IERC721Binder - function ownerOf(uint256 id) public view returns (address) { - return _ownerOf[id]; - } - - /// @inheritdoc IERC721Binder - function onERC721Bind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 bindId, - bytes calldata data - ) public returns (bytes4) { - if (_ownerOf[bindId] != to) { - revert OwnerInvalid(); - } - - if (_boundIndexes[msg.sender][tokenId] != 0) { - revert BindExistent(); - } - - if (!IERC721Bindable(msg.sender).supportsInterface(_ERC721_BINDABLE_INTERFACE_ID)) { - revert BindInvalid(); - } - - _boundIndexes[msg.sender][tokenId] = _boundTokens[bindId].length; - _boundTokens[bindId].push(Bindable(msg.sender, tokenId)); - - return IERC721Binder.onERC721Bind.selector; - } - - /// @inheritdoc IERC721Binder - function onERC721Unbind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 bindId, - bytes calldata data - ) public returns (bytes4) { - if (_ownerOf[bindId] != from) { - revert OwnerInvalid(); - } - - if (_boundIndexes[msg.sender][tokenId] == 0) { - revert BindNonexistent(); - } - - uint256 boundLastIndex = _boundTokens[bindId].length - 1; - uint256 boundIndex = _boundIndexes[msg.sender][tokenId]; - - if (boundIndex != boundLastIndex) { - Bindable memory bindable = _boundTokens[bindId][boundLastIndex]; - _boundTokens[bindId][boundIndex] = bindable; - _boundIndexes[bindable.tokenAddress][bindable.tokenId] = boundIndex; - } - - delete _boundIndexes[msg.sender][tokenId]; - delete _boundTokens[bindId][boundLastIndex]; - - return IERC721Binder.onERC721Unbind.selector; - } - - /// @notice Transfers an asset from address `from` to address `to`. - function transfer( - address from, - address to, - uint256 bindId - ) public { - if (msg.sender != from && !_isApprovedForAll[from][msg.sender]) { - revert SenderUnauthorized(); - } - - if (from != _ownerOf[bindId]) { - revert OwnerInvalid(); - } - - if (to == address(0)) { - revert ReceiverInvalid(); - } - - _ownerOf[bindId] = to; - - Bindable[] memory bindables = _boundTokens[bindId]; - for (uint256 i = 0; i < bindables.length; ++i) { - IERC721Bindable(bindables[i].tokenAddress).transferFrom(from, to, bindables[i].tokenId); - } - - } - - function supportsInterface(bytes4 id) external pure returns (bool) { - return id == _ERC165_INTERFACE_ID || id == _ERC721_BINDER_INTERFACE_ID; - } - -} diff --git a/assets/eip-5700/interfaces/IBindableErrors.sol b/assets/eip-5700/interfaces/IBindableErrors.sol new file mode 100644 index 00000000000000..43dcb86b99d3a3 --- /dev/null +++ b/assets/eip-5700/interfaces/IBindableErrors.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.20; + +/// @title ERC-721 Bindable Errors Interface +interface IBindableErrors { + + /// @notice Bind is not valid. + error BindInvalid(); + +} diff --git a/assets/eip-5700/interfaces/IERC1155BindableErrors.sol b/assets/eip-5700/interfaces/IERC1155BindableErrors.sol deleted file mode 100644 index 4b6aefa89cd352..00000000000000 --- a/assets/eip-5700/interfaces/IERC1155BindableErrors.sol +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -/// @title ERC-1155 Bindable Errors Interface -interface IERC1155BindableErrors { - - /// @notice Bind is not valid. - error BindInvalid(); - - /// @notice Bound asset or bound asset owner is not valid. - error BinderInvalid(); - -} diff --git a/assets/eip-5700/interfaces/IERC1155Binder.sol b/assets/eip-5700/interfaces/IERC1155Binder.sol deleted file mode 100644 index 4466ae7e372f0a..00000000000000 --- a/assets/eip-5700/interfaces/IERC1155Binder.sol +++ /dev/null @@ -1,130 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; - -import {IERC1155BinderErrors} from "./IERC1155BinderErrors.sol"; - -/// @dev Note: the ERC-165 identifier for this interface is 0x6fc97e78. -interface IERC1155Binder is IERC165, IERC1155BinderErrors { - - /// @notice Handles binding of an IERC1155Bindable-compliant token type. - /// @dev An IERC1155Bindable-compliant smart contract MUST call this - /// function at the end of a `bind` after delegating ownership to the asset - /// owner. The function MUST revert if `to` is not the asset owner of - /// `bindId`, or if `bindId` is not a valid asset. The function MUST revert - /// if it rejects the bind. If accepting the bind, the function MUST return - /// `bytes4(keccak256("onERC1155Bind(address,address,address,uint256,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the binding token is `msg.sender`. - /// @param operator The address responsible for binding. - /// @param from The address which owns the unbound tokens. - /// @param to The address which owns the asset being bound to. - /// @param tokenId The identifier of the token type being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Bind(address,address,address,uint256,uint256,uint256,bytes)"))` - function onERC1155Bind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles binding of multiple IERC1155Bindable-compliant tokens - /// `tokenIds` to multiple assets `bindIds`. - /// @dev An IERC1155Bindable-compliant smart contract MUST call this - /// function at the end of a `batchBind` after delegating ownership of - /// multiple token types to the asset owner. The function MUST revert if - /// `to` is not the asset owner of `bindId`, or if `bindId` is not a valid - /// asset. The function MUST revert if it rejects the binds. If accepting - /// the binds, the function MUST return `bytes4(keccak256("onERC1155BatchBind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the binding token is `msg.sender`. - /// @param operator The address responsible for performing the binds. - /// @param from The address which owns the unbound tokens. - /// @param to The address which owns the assets being bound to. - /// @param tokenIds The list of token types being bound. - /// @param amounts The number of tokens for each token type being bound. - /// @param bindIds The identifiers of the assets being bound to. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Bind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - function onERC1155BatchBind( - address operator, - address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles unbinding of an IERC1155Bindable-compliant token type. - /// @dev An IERC1155Bindable-compliant contract MUST call this function at - /// the end of an `unbind` after revoking delegated asset ownership. The - /// function MUST revert if `from` is not the asset owner of `bindId`, - /// or if `bindId` is not a valid asset. The function MUST revert if it - /// rejects the unbind. If accepting the unbind, the function MUST return - /// `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the unbinding token is `msg.sender`. - /// @param operator The address responsible for performing the unbind. - /// @param from The address which owns the asset the token type is bound to. - /// @param to The address which will own the tokens once unbound. - /// @param tokenId The token type being unbound. - /// @param amount The number of tokens of type `tokenId` being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256,uint256,uint256,bytes)"))` - function onERC1155Unbind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 amount, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles unbinding of multiple IERC1155Bindable-compliant token types. - /// @dev An IERC1155Bindable-compliant contract MUST call this function at - /// the end of an `batchUnbind` after revoking delegated asset ownership. - /// The function MUST revert if `from` is not the asset owner of `bindId`, - /// or if `bindId` is not a valid asset. The function MUST revert if it - /// rejects the unbinds. If accepting the unbinds, the function MUST return - /// `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the unbinding token is `msg.sender`. - /// @param operator The address responsible for performing the unbinds. - /// @param from The address which owns the assets being unbound from. - /// @param to The address which will own the tokens once unbound. - /// @param tokenIds The list of token types being unbound. - /// @param amounts The number of tokens for each token type being unbound. - /// @param bindIds The identifiers of the assets being unbound from. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC1155Unbind(address,address,address,uint256[],uint256[],uint256[],bytes)"))` - function onERC1155BatchUnbind( - address operator, - address from, - address to, - uint256[] calldata tokenIds, - uint256[] calldata amounts, - uint256[] calldata bindIds, - bytes calldata data - ) external returns (bytes4); - - /// @notice Gets the owner address of the asset represented by id `bindId`. - /// @param bindId The identifier of the asset whose owner is being queried. - /// @return The address of the owner of the asset. - function ownerOf(uint256 bindId) external view returns (address); - - /// @notice Checks if an operator can act on behalf of an asset owner. - /// @param owner The address that owns an asset. - /// @param operator The address that acts on behalf of owner `owner`. - /// @return True if `operator` can act on behalf of `owner`, else False. - function isApprovedForAll(address owner, address operator) external view returns (bool); - -} diff --git a/assets/eip-5700/interfaces/IERC1155BinderErrors.sol b/assets/eip-5700/interfaces/IERC1155BinderErrors.sol deleted file mode 100644 index 9c438338910d66..00000000000000 --- a/assets/eip-5700/interfaces/IERC1155BinderErrors.sol +++ /dev/null @@ -1,13 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -/// @title ERC-1155 Binder Errors Interface -interface IERC1155BinderErrors { - - /// @notice Asset has already minted. - error AssetAlreadyMinted(); - - /// @notice Receiving address cannot be the zero address. - error ReceiverInvalid(); - -} diff --git a/assets/eip-5700/interfaces/IERC721Bindable.sol b/assets/eip-5700/interfaces/IERC721Bindable.sol index f8ac283ec25c1c..17a8bb4e362249 100644 --- a/assets/eip-5700/interfaces/IERC721Bindable.sol +++ b/assets/eip-5700/interfaces/IERC721Bindable.sol @@ -1,8 +1,7 @@ // SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; +pragma solidity ^0.8.20; import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; - import {IERC721BindableErrors} from "./IERC721BindableErrors.sol"; /// @title ERC-721 Bindable Token Standard @@ -10,103 +9,90 @@ import {IERC721BindableErrors} from "./IERC721BindableErrors.sol"; /// Note: the ERC-165 identifier for this interface is 0x82a34a7d. interface IERC721Bindable is IERC721, IERC721BindableErrors { - /// @notice The `Bind` event MUST emit when NFT ownership is delegated - /// through an asset and when minting an NFT bound to an existing asset. - /// @dev When minting bound NFTs, `from` MUST be set to the zero address. - /// @param operator The address calling the bind (SHOULD be `msg.sender`). - /// @param from The address which owns the unbound NFT. - /// @param to The address which owns the asset being bound to. - /// @param tokenId The identifier of the NFT being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param bindAddress The contract address handling asset ownership. + /// @notice This event emits when an unbound token is bound to an NFT. + /// @param operator The address approved to perform the binding. + /// @param from The address of the unbound token owner. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of binding token. event Bind( address indexed operator, address indexed from, - address to, - uint256 tokenId, + address indexed bindAddress, uint256 bindId, - address indexed bindAddress + uint256 tokenId ); - /// @notice The `Unbind` event MUST emit when asset-delegated NFT ownership - /// is revoked, as well as when burning an NFT bound to an existing asset. - /// @dev When burning bound NFTs, `to` MUST be set to the zero address. - /// @param operator The address calling the unbind (SHOULD be `msg.sender`). - /// @param from The address which owns the asset the NFT is bound to. - /// @param to The address which will own the NFT once unbound. - /// @param tokenId The identifier of the NFT being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. + /// @notice This event emits when an NFT-bound token is unbound. + /// @param operator The address approved to perform the unbinding. + /// @param from The owner of the NFT the token is bound to. + /// @param to The address of the new unbound token owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token. event Unbind( address indexed operator, address indexed from, address to, - uint256 tokenId, + address indexed bindAddress, uint256 bindId, - address indexed bindAddress + uint256 tokenId ); - /// @notice Delegates NFT ownership of NFT `tokenId` from address `from` - /// through the asset `bindId` owned by address `to`. - /// @dev The function MUST throw unless `msg.sender` is the current owner, - /// an authorized operator, or the approved address for the NFT. It also - /// MUST throw if NFT `tokenId` is already bound, if `from` is not the NFT - /// owner, or if `to` is not the asset owner. After ownership delegation, - /// the function MUST check if `bindAddress` is a valid contract (code size - /// > 0), and if so, call `onERC721Bind` on the contract, throwing if the - /// wrong identifier is returned (see "Binding Rules") or if the contract - /// is invalid. On bind completion, the function MUST emit both `Bind` and - /// IERC-721 `Transfer` events to reflect delegated ownership change. - /// @param from The address which owns the unbound NFT. - /// @param to The address which owns the asset being bound to. - /// @param tokenId The identifier of the NFT being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param bindAddress The contract address handling asset ownership. - /// @param data Additional data sent with the `onERC721Bind` hook. + /// @notice Binds token `tokenId` to NFT `bindId` at address `bindAddress`. + /// @dev The function MUST throw unless `msg.sender` is the current owner, + /// an authorized operator, or the approved address for the token. It also + /// MUST throw if the token is already bound or if `from` is not the token + /// owner. Finally, it MUST throw if the NFT contract does not support the + /// ERC-721 interface or if the NFT being bound to does not exist. Before + /// binding, token ownership MUST be transferred to the contract address of + /// the NFT. On bind completion, the function MUST emit `Transfer` & `Bind` + /// events to reflect the implicit token transfer and subsequent bind. + /// @param from The address of the unbound token owner. + /// @param bindAddress The contract address of the NFT being bound to. + /// @param bindId The identifier of the NFT being bound to. + /// @param tokenId The identifier of the binding token. function bind( address from, - address to, - uint256 tokenId, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId ) external; - /// @dev The function MUST throw unless `msg.sender` is an approved operator - /// or owner of the delegated asset of `tokenId`. It also MUST throw if NFT - /// `tokenId` is not bound, if `from` is not the asset owner, or if `to` - /// is the zero address. After ownership transition, the function MUST - /// check if `bindAddress` is a valid contract (code size > 0), and if so, - /// call `onERC721Unbind` the contract, throwing if the wrong identifier is - /// returned (see "Binding Rules") or if the contract is invalid. - /// The function also MUST check if `to` is a valid contract, and if so, - /// call `onERC721Received`, throwing if the wrong identifier is returned. - /// On unbind completion, the function MUST emit both `Unbind` and IERC-721 - /// `Transfer` events to reflect delegated ownership change. - /// @param from The address which owns the asset the NFT is bound to. - /// @param to The address which will own the NFT once unbound. - /// @param tokenId The identifier of the NFT being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param bindAddress The contract address handling bound asset ownership. - /// @param data Additional data sent with the `onERC721Unbind` hook. + /// @notice Unbinds token `tokenId` from NFT `bindId` at address `bindAddress`. + /// @dev The function MUST throw unless `msg.sender` is the current owner, + /// an authorized operator, or the approved address for the NFT the token + /// is bound to. It also MUST throw if the token is unbound, if `from` is + /// not the owner of the bound NFT, or if `to` is the zero address. After + /// unbinding, token ownership MUST be transferred to `to`, during which + /// the function MUST check if `to` is a valid contract (code size > 0), + /// and if so, call `onERC721Received`, throwing if the wrong identifier is + /// returned. On unbind completion, the function MUST emit `Unbind` & + /// `Transfer` events to reflect the unbind and subsequent transfer. + /// @param from The address of the owner of the NFT the token is bound to. + /// @param to The address of the unbound token new owner. + /// @param bindAddress The contract address of the NFT being unbound from. + /// @param bindId The identifier of the NFT being unbound from. + /// @param tokenId The identifier of the unbinding token. function unbind( address from, address to, - uint256 tokenId, - uint256 bindId, address bindAddress, - bytes calldata data + uint256 bindId, + uint256 tokenId ) external; - /// @notice Gets the asset identifier and address which a token is bound to. - /// @param tokenId The identifier of the NFT being queried. - /// @return The bound asset identifier and contract address. - function binderOf(uint256 tokenId) external returns (address, uint256); + /// @notice Gets the NFT address and identifier token `tokenId` is bound to. + /// @dev When the token is unbound, this function MUST return the zero + /// address for the address portion to indicate no binding exists. + /// @param tokenId The identifier of the token being queried. + /// @return The token-bound NFT contract address and numerical identifier. + function binderOf(uint256 tokenId) external view returns (address, uint256); - /// @notice Counts NFTs bound to asset `bindId` at address `bindAddress`. - /// @param bindId The identifier of the bound asset. - /// @param bindAddress The contract address handling bound asset ownership. - /// @return The total number of NFTs bound to the asset. - function boundBalanceOf(address bindAddress, uint256 bindId) external returns (uint256); + /// @notice Gets total tokens bound to NFT `bindId` at address `bindAddress`. + /// @param bindAddress The contract address of the NFT being queried. + /// @param bindId The identifier of the NFT being queried. + /// @return The total number of tokens bound to the queried NFT. + function boundBalanceOf(address bindAddress, uint256 bindId) external view returns (uint256); } diff --git a/assets/eip-5700/interfaces/IERC721BindableErrors.sol b/assets/eip-5700/interfaces/IERC721BindableErrors.sol deleted file mode 100644 index 112493270eecdf..00000000000000 --- a/assets/eip-5700/interfaces/IERC721BindableErrors.sol +++ /dev/null @@ -1,19 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -/// @title ERC-721 Bindable Errors Interface -interface IERC721BindableErrors { - - /// @notice Bind already exists. - error BindExistent(); - - /// @notice Bind does not exist. - error BindNonexistent(); - - /// @notice Bind is not valid. - error BindInvalid(); - - /// @notice Bound asset or bound asset owner is not valid. - error BinderInvalid(); - -} diff --git a/assets/eip-5700/interfaces/IERC721Binder.sol b/assets/eip-5700/interfaces/IERC721Binder.sol deleted file mode 100644 index 93426e29f56fce..00000000000000 --- a/assets/eip-5700/interfaces/IERC721Binder.sol +++ /dev/null @@ -1,72 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; - -import {IERC721BinderErrors} from "./IERC721BinderErrors.sol"; - -/// @dev Note: the ERC-165 identifier for this interface is 0x2ac2d2bc. -interface IERC721Binder is IERC165, IERC721BinderErrors { - - /// @notice Handles the binding of an IERC721Bindable-compliant NFT. - /// @dev An IERC721Bindable-compliant smart contract MUST call this function - /// at the end of a `bind` after delegating ownership to the asset owner. - /// The function MUST revert if `to` is not the asset owner of `bindId` or - /// if asset `bindId` is not a valid asset. The function MUST revert if it - /// rejects the bind. If accepting the bind, the function MUST return - /// `bytes4(keccak256("onERC721Bind(address,address,address,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the binding NFT is `msg.sender`. - /// @param operator The address responsible for initiating the bind. - /// @param from The address which owns the unbound NFT. - /// @param to The address which owns the asset being bound to. - /// @param tokenId The identifier of the NFT being bound. - /// @param bindId The identifier of the asset being bound to. - /// @param data Additional data sent along with no specified format. - /// @return `bytes4(keccak256("onERC721Bind(address,address,address,uint256,uint256,bytes)"))` - function onERC721Bind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Handles the unbinding of an IERC721Bindable-compliant NFT. - /// @dev An IERC721Bindable-compliant smart contract MUST call this function - /// at the end of an `unbind` after revoking delegated asset ownership. - /// The function MUST revert if `from` is not the asset owner of `bindId` - /// or if `bindId` is not a valid asset. The function MUST revert if it - /// rejects the unbind. If accepting the unbind, the function MUST return - /// `bytes4(keccak256("onERC721Unbind(address,address,address,uint256,uint256,bytes)"))` - /// Caller MUST revert the transaction if the above value is not returned. - /// Note: The contract address of the unbinding NFT is `msg.sender`. - /// @param from The address which owns the asset the NFT is bound to. - /// @param to The address which will own the NFT once unbound. - /// @param tokenId The identifier of the NFT being unbound. - /// @param bindId The identifier of the asset being unbound from. - /// @param data Additional data with no specified format. - /// @return `bytes4(keccak256("onERC721Unbind(address,address,address,uint256,uint256,bytes)"))` - function onERC721Unbind( - address operator, - address from, - address to, - uint256 tokenId, - uint256 bindId, - bytes calldata data - ) external returns (bytes4); - - /// @notice Gets the owner address of the asset represented by id `bindId`. - /// @dev Queries for assets assigned to the zero address MUST throw. - /// @param bindId The identifier of the asset whose owner is being queried. - /// @return The address of the owner of the asset. - function ownerOf(uint256 bindId) external view returns (address); - - /// @notice Checks if an operator can act on behalf of an asset owner. - /// @param owner The address that owns an asset. - /// @param operator The address that acts on behalf of owner `owner`. - /// @return True if `operator` can act on behalf of `owner`, else False. - function isApprovedForAll(address owner, address operator) external view returns (bool); - -} diff --git a/assets/eip-5700/interfaces/IERC721BinderErrors.sol b/assets/eip-5700/interfaces/IERC721BinderErrors.sol deleted file mode 100644 index c949e6e57c960c..00000000000000 --- a/assets/eip-5700/interfaces/IERC721BinderErrors.sol +++ /dev/null @@ -1,25 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 -pragma solidity ^0.8.16; - -/// @title ERC-721 Binder Errors Interface -interface IERC721BinderErrors { - - /// @notice Asset binding already exists. - error BindExistent(); - - /// @notice Asset binding is not valid. - error BindInvalid(); - - /// @notice Asset binding does not exist. - error BindNonexistent(); - - /// @notice Originating address does not own the asset. - error OwnerInvalid(); - - /// @notice Receiving address cannot be the zero address. - error ReceiverInvalid(); - - /// @notice Sender is not NFT owner, approved address, or owner operator. - error SenderUnauthorized(); - -} From cebd7d0eb5540bc0d468fe8b249e2149682c2c9d Mon Sep 17 00:00:00 2001 From: Andres Guarneros <34948183+guarner8@users.noreply.github.com> Date: Wed, 17 May 2023 10:34:16 -0400 Subject: [PATCH 18/27] Update eip-4955.md (#6937) Fix typo. --- EIPS/eip-4955.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-4955.md b/EIPS/eip-4955.md index ee650ebae1e776..9a3b98b74f53d3 100644 --- a/EIPS/eip-4955.md +++ b/EIPS/eip-4955.md @@ -17,7 +17,7 @@ This EIP standardizes a schema for NFTs metadata to add new field namespaces to ## Motivation -A standardized NFT metadata schema allows wallets, marketplaces, metaverses, and sililar applications to interoperate with any NFT. Applications such as NFT marketplaces and metaverses could usefully leverage NFTs by rendering them using custom 3D representations or any other new attributes. +A standardized NFT metadata schema allows wallets, marketplaces, metaverses, and similar applications to interoperate with any NFT. Applications such as NFT marketplaces and metaverses could usefully leverage NFTs by rendering them using custom 3D representations or any other new attributes. Some projects like Decentraland, TheSandbox, Cryptoavatars, etc. need their own 3D model in order to represent an NFT. These models are not cross-compatible because of distinct aesthetics and data formats. From f60afebae807e33975c5375ed318e617f4361db4 Mon Sep 17 00:00:00 2001 From: Jan Turk Date: Wed, 17 May 2023 21:37:30 +0200 Subject: [PATCH 19/27] Update EIP-6454: Move to Final Merged by EIP-Bot. --- EIPS/eip-6454.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-6454.md b/EIPS/eip-6454.md index 10140dd1015ef0..f2dbc9a39fef15 100644 --- a/EIPS/eip-6454.md +++ b/EIPS/eip-6454.md @@ -5,7 +5,7 @@ description: A minimal extension to identify the transferability of Non-Fungible author: Bruno Škvorc (@Swader), Francesco Sullo (@sullof), Steven Pineda (@steven2308), Stevan Bogosavljevic (@stevyhacker), Jan Turk (@ThunderDeliverer) discussions-to: https://ethereum-magicians.org/t/minimalistic-transferable-interface/12517 status: Last Call -last-call-deadline: 2023-04-07 +last-call-deadline: 2023-05-27 type: Standards Track category: ERC created: 2023-01-31 From 14e48abc75d3a4345c43c8361c4fe5c00efefd95 Mon Sep 17 00:00:00 2001 From: Alex Stokes Date: Wed, 17 May 2023 16:23:54 -0600 Subject: [PATCH 20/27] Update EIP-4788: send current slot from CL to avoid timestamp conversions Merged by EIP-Bot. --- EIPS/eip-4788.md | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/EIPS/eip-4788.md b/EIPS/eip-4788.md index 492e12e23fca3d..b2d2cb378b6d93 100644 --- a/EIPS/eip-4788.md +++ b/EIPS/eip-4788.md @@ -18,7 +18,10 @@ Store each of these roots in a contract that lives in the execution state and ad ## Motivation -Roots of the beacon chain blocks are cryptographic accumulators that allow proofs of arbitrary consensus state. Exposing these roots inside the EVM allows for trust-minimized access to the consensus layer. This functionality supports a wide variety of use cases that improve trust assumptions of staking pools, restaking constructions, smart contract bridges, MEV mitigations and more. +Roots of the beacon chain blocks are cryptographic accumulators that allow proofs of arbitrary consensus state. +Exposing these roots inside the EVM allows for trust-minimized access to the consensus layer. +This functionality supports a wide variety of use cases that improve trust assumptions of staking pools, +restaking constructions, smart contract bridges, MEV mitigations and more. ## Specification @@ -34,7 +37,8 @@ Roots of the beacon chain blocks are cryptographic accumulators that allow proof The high-level idea is that each execution block contains the parent beacon block root. Even in the event of missed slots since the previous block root does not change, we only need a constant amount of space to represent this "oracle" in each execution block. To improve the usability of this oracle, block roots are stored -in a canonical place in the execution state analogous to a `SSTORE` in given contract's storage for each update. Roots are stored keyed by the slot(s) they pertain to. +in a canonical place in the execution state analogous to a `SSTORE` in the given contract's storage for each update. +Roots are keyed by the slot(s) they pertain to. To bound the amount of storage this construction consumes, a ring buffer is used that mirrors a block root accumulator on the consensus layer. The method for exposing the root data via opcode is inspired by [EIP-2935](./eip-2935.md). @@ -42,29 +46,46 @@ The method for exposing the root data via opcode is inspired by [EIP-2935](./eip Beginning at the execution timestamp `FORK_TIMESTAMP`, execution clients **MUST**: -1. set 32 bytes of the execution block header after the `withdrawals_root` to the 32 byte [hash tree root](https://github.com/ethereum/consensus-specs/blob/fa09d896484bbe240334fa21ffaa454bafe5842e/ssz/simple-serialize.md#merkleization) of the parent beacon block. +1. set 32 bytes of the execution block header after the `excess_data_gas` to the 32 byte [hash tree root](https://github.com/ethereum/consensus-specs/blob/fa09d896484bbe240334fa21ffaa454bafe5842e/ssz/simple-serialize.md#merkleization) of the parent beacon block. -*NOTE*: this field is appended to the current block header structure with this EIP so that the size of the header grows after (and including) the `FORK_TIMESTAMP`. +2. set the 8 bytes after the previous 32 byte extension to the slot number as a big-endian uint64 of the current slot. + +*NOTE*: these fields are appended to the current block header structure with this EIP so that the size of the header grows after (and including) the `FORK_TIMESTAMP`. ### EVM changes #### Block processing -At the start of processing any execution block where `block.timestamp >= FORK_TIMESTAMP` (i.e. before processing any transactions), write the parent beacon root provided in the block header into the storage of the contract at `HISTORY_STORAGE_ADDRESS`. This data is keyed by the slot number. +At the start of processing any execution block where `block.timestamp >= FORK_TIMESTAMP` (i.e. before processing any transactions), +write the parent beacon root provided in the block header into the storage of the contract at `HISTORY_STORAGE_ADDRESS`. -In pseudocode: +This data is keyed by the slots containing the parent beacon block root which in general could be multiple slots for the +same root. To find the starting slot of the range, read the storage slot `SLOTS_PER_HISTORICAL_ROOT` (interpreted as a +256-bit byte array) which contains the big-endian encoding of the last slot value written to. This encoding should be interpreted +as a 64-bit big-endian integer that yields the starting slot. +Clients then iterate from the start slot (inclusive) to the end slot (exclusive) found in the header +and write the beacon block root into each slot value. -```python -start_timestamp = get_block(block_header.parent_hash).header.timestamp -start_slot = convert_to_slot(start_timestamp) +*NOTE*: if the slot stored at `SLOTS_PER_HISTORICAL_ROOT` is all zeros, clients should use set the start slot to one less than the +slot in the header, e.g. `header.beacon_block_root_slot - 1`. + +After writing the block root in the relevant slots, store the current slot for use during the next update in the same storage slot +`SLOTS_PER_HISTORICAL_ROOT`. -end_timestamp = block_header.timestamp -end_slot = convert_to_slot(end_timestamp) +In Python pseudocode: + +```python +start_slot = to_uint64(sload(HISTORY_STORAGE_ADDRESS, SLOTS_PER_HISTORICAL_ROOT)) +end_slot = block_header.beacon_slot +if start_slot == 0: + start_slot = max(end_slot - 1, 0) parent_beacon_block_root = block_header.parent_beacon_block_root for slot in range(start_slot, end_slot): sstore(HISTORY_STORAGE_ADDRESS, slot % SLOTS_PER_HISTORICAL_ROOT, parent_beacon_block_root) + +sstore(HISTORY_STORAGE_ADDRESS, SLOTS_PER_HISTORICAL_ROOT, end_slot) ``` When using any slot value as a key to the storage, the value under consideration must be converted to 32 bytes with big-endian encoding. From 04ca241eecc297b27bb812c4d554505255c40a52 Mon Sep 17 00:00:00 2001 From: Alex Stokes Date: Thu, 18 May 2023 12:02:58 -0600 Subject: [PATCH 21/27] Update EIP-4844: Update eip-4844.md, fix typo Merged by EIP-Bot. --- EIPS/eip-4844.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/EIPS/eip-4844.md b/EIPS/eip-4844.md index c8b35be69e4241..5060f60bd9326c 100644 --- a/EIPS/eip-4844.md +++ b/EIPS/eip-4844.md @@ -110,7 +110,7 @@ rlp([chain_id, nonce, max_priority_fee_per_gas, max_fee_per_gas, gas_limit, to, The `max_priority_fee_per_gas` and `max_fee_per_gas` fields follow [EIP-1559](./eip-1559.md) semantics and `access_list` follows [EIP-2930](./eip-2930.md). -The `max_fee_per_data_gas` is `uint256` and the `blob_versioned_hashes` field represents a list hash outputs from `kzg_to_versioned_hash`. +The `max_fee_per_data_gas` is `uint256` and the `blob_versioned_hashes` field represents a list of hash outputs from `kzg_to_versioned_hash`. The [EIP-2718](./eip-2718.md) `ReceiptPayload` for this transaction is `rlp([status, cumulative_transaction_gas_used, logs_bloom, logs])`. From 1d001b734162c9ff1cb01f586f6df52c14c04e49 Mon Sep 17 00:00:00 2001 From: Charles Cooper Date: Thu, 18 May 2023 15:38:48 -0400 Subject: [PATCH 22/27] Update EIP-5202: Move to Last Call Merged by EIP-Bot. --- EIPS/eip-5202.md | 54 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/EIPS/eip-5202.md b/EIPS/eip-5202.md index b7b35009adcdf8..bfd327a2f974b4 100644 --- a/EIPS/eip-5202.md +++ b/EIPS/eip-5202.md @@ -4,7 +4,8 @@ title: Blueprint contract format description: Define a bytecode container format for indexing and utilizing blueprint contracts author: Charles Cooper (@charles-cooper), Edward Amor (@skellet0r) discussions-to: https://ethereum-magicians.org/t/erc-5202-standard-factory-contract-format/9851 -status: Review +status: Last Call +last-call-deadline: 2023-06-01 type: Standards Track category: ERC created: 2022-06-23 @@ -12,15 +13,18 @@ requires: 170 --- ## Abstract + Define a standard for "blueprint" contracts, or contracts which represent initcode that is stored on-chain. ## Motivation + To decrease deployer contract size, a useful pattern is to store initcode on chain as a "blueprint" contract, and then use `EXTCODECOPY` to copy the initcode into memory, followed by a call to `CREATE` or `CREATE2`. However, this comes with the following problems: - It is hard for external tools and indexers to detect if a contract is a "regular" runtime contract or a "blueprint" contract. Heuristically searching for patterns in bytecode to determine if it is initcode poses maintenance and correctness problems. - Storing initcode byte-for-byte on-chain is a correctness and security problem. Since the EVM does not have a native way to distinguish between executable code and other types of code, unless the initcode explicitly implements ACL rules, *anybody* can call such a "blueprint" contract and execute the initcode directly as ordinary runtime code. This is particularly problematic if the initcode stored by the blueprint contract has side effects such as writing to storage or calling external contracts. If the initcode stored by the blueprint contract executes a `SELFDESTRUCT` opcode, the blueprint contract could even be removed, preventing the correct operation of downstream deployer contracts that rely on the blueprint existing. For this reason, it would be good to prefix blueprint contracts with a special preamble to prevent execution. ## Specification + The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. A blueprint contract MUST use the preamble `0xFE71`. 6 bits are allocated to the version, and 2 bits to the length encoding. The first version begins at 0 (`0b000000`), and versions increment by 1. The value `0b11` for `` is reserved. In the case that the length bits are `0b11`, the third byte is considered a continuation byte (that is, the version requires multiple bytes to encode). The exact encoding of a multi-byte version is left to a future ERC. @@ -30,6 +34,7 @@ A blueprint contract MUST contain at least one byte of initcode. A blueprint contract MAY insert any bytes (data or code) between the version byte(s) and the initcode. If such variable length data is used, the preamble must be `0xFE71`. The `` represent a number between 0 and 2 (inclusive) describing how many bytes `` takes, and `` is the big-endian encoding of the number of bytes that `` takes. ## Rationale + - To save gas and storage space, the preamble should be as minimal as possible. - It is considered "bad" behavior to try to CALL a blueprint contract directly, therefore the preamble starts with `INVALID (0xfe)` to end execution with an exceptional halting condition (rather than a "gentler" opcode like `STOP (0x00)`). @@ -44,11 +49,36 @@ A blueprint contract MAY insert any bytes (data or code) between the version byt - The length of the initcode itself is not included by default in the preamble because it takes space, and it can be trivially determined using `EXTCODESIZE`. -- The EOF ([EIP-3540](./eip-3540.md)) could provide another way of specifying blueprint contracts, by adding another section kind (3 - initcode). However, it is not yet in the EVM, and we would like to be able to standardize blueprint contracts today, without relying on EVM changes. If, at some future point, section kind 3 becomes part of the EOF spec, and the EOF becomes part of the EVM, this ERC will be considered to be obsolesced since the EOF validation spec provides much stronger guarantees than this ERC. +- The Ethereum Object Format (EOF) could provide another way of specifying blueprint contracts, by adding another section kind (3 - initcode). However, it is not yet in the EVM, and we would like to be able to standardize blueprint contracts today, without relying on EVM changes. If, at some future point, section kind 3 becomes part of the EOF spec, and the EOF becomes part of the EVM, this ERC will be considered to be obsolesced since the EOF validation spec provides much stronger guarantees than this ERC. ## Backwards Compatibility -Needs discussion + +No known issues + +## Test Cases + +- An example (and trivial!) blueprint contract with no data section, whose initcode is just the `STOP` instruction: + +``` +0xFE710000 +``` + +- An example blueprint contract whose initcode is the trivial `STOP` instruction and whose data section contains the byte `0xFF` repeated seven times: + +``` +0xFE710107FFFFFFFFFFFFFF00 +``` + +Here, 0xFE71 is the magic header, `0x01` means version 0 + 1 length bit, `0x07` encodes the length in bytes of the data section. These are followed by the data section, and then the initcode. For illustration, the above code with delimiters would be `0xFE71|01|07|FFFFFFFFFFFFFF|00`. + +- An example blueprint whose initcode is the trivial `STOP` instruction and whose data section contains the byte `0xFF` repeated 256 times: + +``` +0xFE71020100FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 +``` + +Delimited, that would be `0xFE71|02|0100|FF...FF|00`. ## Reference Implementation @@ -95,6 +125,23 @@ def parse_blueprint_preamble(bytecode: bytes) -> Tuple[int, Optional[bytes], byt return erc_version, preamble_data, initcode ``` +The following reference function takes the desired initcode for a blueprint as a parameter, and returns EVM code which will deploy a corresponding blueprint contract (with no data section): + +```python +def blueprint_deployer_bytecode(initcode: bytes) -> bytes: + blueprint_preamble = b"\xFE\x71\x00" # ERC5202 preamble + blueprint_bytecode = blueprint_preamble + initcode + + # the length of the deployed code in bytes + len_bytes = len(blueprint_bytecode).to_bytes(2, "big") + + # copy to memory and `RETURN` it per EVM creation semantics + # PUSH2 RETURNDATASIZE DUP2 PUSH1 10 RETURNDATASIZE CODECOPY RETURN + deploy_bytecode = b"\x61" + len_bytes + b"\x3d\x81\x60\x0a\x3d\x39\xf3" + + return deploy_bytecode + blueprint_bytecode +``` + ## Security Considerations There could be contracts on-chain already which happen to start with the same prefix as proposed in this ERC. However, this is not considered a serious risk, because the way it is envisioned that indexers will use this is to verify source code by compiling it and prepending the preamble. @@ -102,4 +149,5 @@ There could be contracts on-chain already which happen to start with the same pr As of 2022-07-08, no contracts deployed on the Ethereum mainnet have a bytecode starting with `0xFE71`. ## Copyright + Copyright and related rights waived via [CC0](../LICENSE.md). From 686bc3caa60b59360da59f1a8b696485de26b542 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ernesto=20Garc=C3=ADa?= Date: Thu, 18 May 2023 18:24:54 -0600 Subject: [PATCH 23/27] Update EIP-6093: EIP6093 Corrections for ERC721 Merged by EIP-Bot. --- EIPS/eip-6093.md | 45 +++++++++++++++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/EIPS/eip-6093.md b/EIPS/eip-6093.md index b932c65be7c375..9077991f36ee5f 100644 --- a/EIPS/eip-6093.md +++ b/EIPS/eip-6093.md @@ -13,7 +13,7 @@ requires: 20, 721, 1155 ## Abstract -This EIP defines a standard set of custom errors for commonly-used tokens, which are defined as [EIP-20](./eip-20.md), [EIP-721](./eip-721.md), and [EIP-1155](./eip-1155.md) tokens. +This EIP defines a standard set of custom errors for commonly-used tokens, which are defined as [ERC-20](./eip-20.md), [ERC-721](./eip-721.md), and [ERC-1155](./eip-1155.md) tokens. Ethereum applications and wallets have historically relied on revert reason strings to display the cause of transaction errors to users. Recent Solidity versions offer rich revert reasons with error-specific decoding (sometimes called "custom errors"). This EIP defines a standard set of errors designed to give at least the same relevant information as revert reason strings, but in a structured and expected way that clients can implement decoding for. @@ -21,7 +21,7 @@ Ethereum applications and wallets have historically relied on revert reason stri Since the introduction of Solidity custom errors in v0.8.4, these have provided a way to show failures in a more expressive and gas efficient manner with dynamic arguments, while reducing deployment costs. -However, [EIP-20](./eip-20.md), [EIP-721](./eip-721.md), [EIP-1155](./eip-1155.md) were already finalized when custom errors were released, so no errors are included in their specification. +However, [ERC-20](./eip-20.md), [ERC-721](./eip-721.md), [ERC-1155](./eip-1155.md) were already finalized when custom errors were released, so no errors are included in their specification. Standardized errors allow users to expect more consistent error messages across applications or testing environments, while exposing pertinent arguments and overall reducing the need of writing expensive revert strings in the deployment bytecode. @@ -35,7 +35,7 @@ This EIP defines standard errors that may be used by implementations in certain The names of the error arguments are defined in the [Parameter Glossary](#parameter-glossary), and MUST be used according to those definitions. -### [EIP-20](./eip-20.md) +### [ERC-20](./eip-20.md) #### `ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed)` @@ -90,9 +90,24 @@ Used in approvals. - MUST NOT be used for transfer operations. - Use `ERC20InsufficientAllowance` instead. -### [EIP-721](./eip-721.md) +### [ERC-721](./eip-721.md) -#### `ERC721InvalidOwner(address sender, uint256 tokenId, address owner)` +### `ERC721InvalidOwner(address owner)` + +Indicates that an address can't be an owner. +Used in balance queries. + +- MUST be used for addresses whose ownership is disallowed (eg. ERC-721 explicitly disallows `address(0)` to be an owner). +- MUST not be used for transfers. + - Use `ERC721IncorrectOwner` instead. + +### `ERC721InexistentToken(uint256 tokenId)` + +Indicates a `tokenId` whose `owner` is the zero address. + +- MUST be used when attempting to interact with a non-minted or burned token. + +#### `ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)` Indicates an error related to the ownership over a particular token. Used in transfers. @@ -102,17 +117,17 @@ Used in transfers. #### `ERC721InvalidSender(address sender)` -Indicates a failure with the token sender. +Indicates a failure with the token `sender`. Used in transfers. - MUST be used for disallowed transfers from the zero address. - MUST NOT be used for approval operations. - MUST NOT be used for ownership or approval requirements. - - Use `ERC721InvalidOwner` or `ERC721InsufficientApproval` instead. + - Use `ERC721IncorrectOwner` or `ERC721InsufficientApproval` instead. #### `ERC721InvalidReceiver(address receiver)` -Indicates a failure with the token receiver. +Indicates a failure with the token `receiver`. Used in transfers. - MUST be used for disallowed transfers to the zero address. @@ -145,11 +160,11 @@ Used in approvals. - MUST NOT be used for transfer operations. - Use `ERC721InsufficientApproval` instead. -### [EIP-1155](./eip-1155.md) +### [ERC-1155](./eip-1155.md) #### `ERC1155InsufficientBalance(address sender, uint256 balance, uint256 needed, uint256 tokenId)` -Indicates an error related to the current `balance` of a sender. +Indicates an error related to the current `balance` of a `sender`. Used in transfers. - MUST be used when `balance` is less than `needed` for a `tokenId`. @@ -157,7 +172,7 @@ Used in transfers. #### `ERC1155InvalidSender(address sender)` -Indicates a failure with the token sender. +Indicates a failure with the token `sender`. Used in transfers. - MUST be used for disallowed transfers from the zero address. @@ -167,7 +182,7 @@ Used in transfers. #### `ERC1155InvalidReceiver(address receiver)` -Indicates a failure with the token receiver. +Indicates a failure with the token `receiver`. Used in transfers. - MUST be used for disallowed transfers to the zero address. @@ -241,7 +256,7 @@ The main actions that can be performed within a token are: The subjects outlined above are expected to exhaustively represent _what_ can go wrong in a token transaction, deriving a specific error by adding an [error prefix](#error-prefixes). -Note that the action is never seen as the subject of an error. Additionally, the token itself is not seen as the subject of an error but rather the context in which it happens, as identified in the domain. +Note that the action is never seen as the subject of an error. If a subject is called different on a particular token standard, the error should be consistent with the standard's naming convention. @@ -337,7 +352,9 @@ interface ERC20Errors { /// @dev See https://eips.ethereum.org/EIPS/eip-721 /// https://eips.ethereum.org/EIPS/eip-6093 interface ERC721Errors { - error ERC721InvalidOwner(address sender, uint256 tokenId, address owner); + error ERC721InvalidOwner(address owner); + error ERC721InexistentToken(uint256 tokenId); + error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner); error ERC721InvalidSender(address sender); error ERC721InvalidReceiver(address receiver); error ERC721InsufficientApproval(address operator, uint256 tokenId); From 749bb69b50e3512392196e1c03aa200d240de7c7 Mon Sep 17 00:00:00 2001 From: BogdanKTHD <120460094+BogdanKTHD@users.noreply.github.com> Date: Sat, 20 May 2023 07:38:36 +0200 Subject: [PATCH 24/27] Add EIP: Registry for royalties payment for NFTs Merged by EIP-Bot. --- EIPS/eip-6786.md | 105 ++++++++++++++++++ assets/eip-6786/README.md | 27 +++++ assets/eip-6786/contracts/ERC6786.sol | 67 +++++++++++ assets/eip-6786/contracts/IERC6786.sol | 21 ++++ .../contracts/token/ERC721Royalty.sol | 33 ++++++ assets/eip-6786/contracts/utils/IERC2981.sol | 14 +++ assets/eip-6786/test/ERC6786.test.js | 65 +++++++++++ 7 files changed, 332 insertions(+) create mode 100644 EIPS/eip-6786.md create mode 100644 assets/eip-6786/README.md create mode 100644 assets/eip-6786/contracts/ERC6786.sol create mode 100644 assets/eip-6786/contracts/IERC6786.sol create mode 100644 assets/eip-6786/contracts/token/ERC721Royalty.sol create mode 100644 assets/eip-6786/contracts/utils/IERC2981.sol create mode 100644 assets/eip-6786/test/ERC6786.test.js diff --git a/EIPS/eip-6786.md b/EIPS/eip-6786.md new file mode 100644 index 00000000000000..125c145e5cfabf --- /dev/null +++ b/EIPS/eip-6786.md @@ -0,0 +1,105 @@ +--- +eip: 6786 +title: Registry for royalties payment for NFTs +description: A registry used for paying royalties for any NFT with information about the creator +author: Otniel Nicola (@OT-kthd), Bogdan Popa (@BogdanKTHD) +discussions-to: https://ethereum-magicians.org/t/eip-6786-royalty-debt-registry/13569 +status: Draft +type: Standards Track +category: ERC +created: 2023-03-27 +requires: 165, 2981 +--- + +## Abstract + +This standard allows anyone to pay royalties for a certain NFT and also to keep track of the royalties amount paid. It will cumulate the value each time a payment is executed through it and make the information public. + +## Motivation + +There are many marketplaces which do not enforce any royalty payment to the NFT creator every time the NFT is sold or re-sold and/or providing a way for doing it. There are some marketplaces which use specific system of royalties, however that system is applicable for the NFTs creates on their platform. + +In this context, there is a need of a way for paying royalties, as it is a strong incentive for creators to keep contributing to the NFTs ecosystem. + +Additionally, this standard will provide a way of computing the amount of royalties paid to a creator for a certain NFT. This could be useful in the context of categorising NFTs in terms of royalties. The term “debt“ is used because the standard aims to provide a way of knowing if there are any royalties left unpaid for the NFTs trades that took place in a marketplace that does not support them and, in that case, expose a way of paying them. + +With a lot of places made for trading NFTs dropping down the royalty payment or having a centralised approach, we want to provide a way for anyone to pay royalties to the creators. + +Not only the owner of it, but anyone could pay royalties for a certain NFT. This could be a way of supporting a creator for his work. + +## Specification + +The keywords “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, and “OPTIONAL” in this document are to be interpreted as described in RFC 2119. + +Every contract compliant with [ERC-6786](./eip-6786.md) MUST implement the interface defined as follows: + +### Contract Interface + +```solidity +// @title Royalty Debt Registry +/// Note: the ERC-165 identifier for this interface is 0x253b27b0 + +interface IERC6786 { + + // Logged when royalties were paid for a NFT + /// @notice Emitted when royalties are paid for the NFT with address tokenAddress and id tokenId + event RoyaltiesPaid(address indexed tokenAddress, uint256 indexed tokenId, uint256 amount); + + /// @notice sends msg.value to the creator of a NFT + /// @dev Reverts if there are no on-chain informations about the creator + /// @param tokenAddress The address of NFT contract + /// @param tokenId The NFT id + function payRoyalties(address tokenAddress, uint256 tokenId) external payable; + + /// @notice Get the amount of royalties which was paid for a NFT + /// @dev + /// @param tokenAddress The address of NFT contract + /// @param tokenId The NFT id + /// @return The amount of royalties paid for the NFT + function getPaidRoyalties(address tokenAddress, uint256 tokenId) external view returns (uint256); +} +``` + +All functions defined as view MAY be implemented as pure or view + +Function `payRoyalties` MAY be implemented as public or external + +The event `RoyaltiesPaid` MUST be emitted when the payRoyalties function is called + +The `supportsInterface` function MUST return true when called with `0x253b27b0` + +## Rationale + +The payment can be made in native coins, so it is easy to aggregate the amount of paid royalties. We want this information to be public, so anyone could tell if a creator received royalties in case of under the table trading or in case of marketplaces which don’t support royalties. + +The function used for payment can be called by anyone (not only the NFTs owner) to support the creator at any time. There is a way of seeing the amount of paid royalties in any token, also available for anyone. + +For fetching creator on-chain data we will use [ERC-2981](./eip-2981.md), but any other on-chain method of getting the creator address is accepted. + +## Backwards Compatibility + +This ERC is not introducing any backward incompatibilities. + +## Test Cases + +Tests are included in [`ERC6786.test.js`](../assets/eip-6786/test/ERC6786.test.js). + +To run them in terminal, you can use the following commands: + +``` +cd ../assets/eip-6786 +npm install +npx hardhat test +``` + +## Reference Implementation + +See [`ERC6786.sol`](../assets/eip-6786/contracts/ERC6786.sol). + +## Security Considerations + +There are no security considerations related directly to the implementation of this standard. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE). diff --git a/assets/eip-6786/README.md b/assets/eip-6786/README.md new file mode 100644 index 00000000000000..cc3a5481a726d1 --- /dev/null +++ b/assets/eip-6786/README.md @@ -0,0 +1,27 @@ +
+ +# ERC6786 Royalty Debt Registry + +
+ +This project provides a reference implementation of the proposed `ERC-6786 Royalty Debt Registry`. + +## Install + +In order to install the required dependencies you need to execute: +```shell +npm install +``` + +## Compile + +In order to compile the solidity contracts you need to execute: +```shell +npx hardhat compile +``` + +## Tests + +```shell +npx hardhat test +``` \ No newline at end of file diff --git a/assets/eip-6786/contracts/ERC6786.sol b/assets/eip-6786/contracts/ERC6786.sol new file mode 100644 index 00000000000000..8910fe39930d8b --- /dev/null +++ b/assets/eip-6786/contracts/ERC6786.sol @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/utils/introspection/ERC165.sol"; +import "./IERC6786.sol"; +import "./utils/IERC2981.sol"; + +contract ERC6786 is IERC6786, ERC165 { + + //Mapping from token (address and id) to the amount of paid royalties + mapping(address => mapping(uint256 => uint256)) private _paidRoyalties; + + /* + * bytes4(keccak256('payRoyalties(address,uint256)')) == 0xf511f0e9 + * bytes4(keccak256('getPaidRoyalties(address,uint256)')) == 0xd02ad759 + * + * => 0xf511f0e9 ^ 0xd02ad759 == 0x253b27b0 + */ + bytes4 private constant _INTERFACE_ID_ERC6786 = 0x253b27b0; + + /* + * bytes4(keccak256('royaltyInfo(uint256,uint256)')) == 0x2a55205a + */ + bytes4 private constant _INTERFACE_ID_ERC2981 = 0x2a55205a; + + /// @notice This is thrown when there is no creator related information + /// @param tokenAddress -> the address of the contract + /// @param tokenId -> the id of the NFT + error CreatorError(address tokenAddress, uint256 tokenId); + + /// @notice This is thrown when the payment fails + /// @param creator -> the address of the creator + /// @param amount -> the amount to pay + error PaymentError(address creator, uint256 amount); + + function checkRoyalties(address _contract) internal view returns (bool) { + (bool success) = IERC165(_contract).supportsInterface(_INTERFACE_ID_ERC2981); + return success; + } + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return + interfaceId == type(IERC6786).interfaceId || + super.supportsInterface(interfaceId); + } + + function payRoyalties(address tokenAddress, uint256 tokenId) external override payable { + if (!checkRoyalties(tokenAddress)) { + revert CreatorError(tokenAddress, tokenId); + } + (address creator,) = IERC2981(tokenAddress).royaltyInfo(tokenId, 0); + (bool success,) = payable(creator).call{value : msg.value}(""); + if(!success) { + revert PaymentError(creator, msg.value); + } + _paidRoyalties[tokenAddress][tokenId] += msg.value; + + emit RoyaltiesPaid(tokenAddress, tokenId, msg.value); + } + + function getPaidRoyalties(address tokenAddress, uint256 tokenId) external view override returns (uint256) { + return _paidRoyalties[tokenAddress][tokenId]; + } +} diff --git a/assets/eip-6786/contracts/IERC6786.sol b/assets/eip-6786/contracts/IERC6786.sol new file mode 100644 index 00000000000000..9ed6d35b9e9f75 --- /dev/null +++ b/assets/eip-6786/contracts/IERC6786.sol @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.0; + +interface IERC6786 { + + /// @dev Logged when royalties were paid for a NFT + /// @notice Emitted when royalties are paid for the NFT with address tokenAddress and id tokenId + event RoyaltiesPaid(address indexed tokenAddress, uint256 indexed tokenId, uint256 amount); + + /// @notice sends msg.value to the creator for a NFT + /// @dev Throws if there is no on-chain information about the creator + /// @param tokenAddress The address of NFT contract + /// @param tokenId The NFT id + function payRoyalties(address tokenAddress, uint256 tokenId) external payable; + + /// @notice Get the amount of royalties which was paid for + /// @param tokenAddress The address of NFT contract + /// @param tokenId The NFT id + /// @return The amount of royalties paid for the NFT in paymentToken + function getPaidRoyalties(address tokenAddress, uint256 tokenId) external view returns (uint256); +} diff --git a/assets/eip-6786/contracts/token/ERC721Royalty.sol b/assets/eip-6786/contracts/token/ERC721Royalty.sol new file mode 100644 index 00000000000000..94a7d652ab0f19 --- /dev/null +++ b/assets/eip-6786/contracts/token/ERC721Royalty.sol @@ -0,0 +1,33 @@ +// SPDX-License-Identifier: CC0-1.0 +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "../utils/IERC2981.sol"; + +contract ERC721Royalty is ERC721, IERC2981 { + + address public constant DEFAULT_CREATOR_ADDRESS = 0x4fF5DDB196A32e3dC604abD5422805ecAD22c468; + + constructor(string memory name_, string memory symbol_) ERC721(name_, symbol_) {} + + /** + * @dev See {IERC165-supportsInterface}. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, IERC165) returns (bool) { + return + interfaceId == type(IERC721).interfaceId || + interfaceId == type(IERC2981).interfaceId || + super.supportsInterface(interfaceId); + } + + function royaltyInfo( + uint256 _tokenId, + uint256 _salePrice + ) external view override returns ( + address receiver, + uint256 royaltyAmount + ) { + receiver = DEFAULT_CREATOR_ADDRESS; + royaltyAmount = _salePrice / 10000; + } +} diff --git a/assets/eip-6786/contracts/utils/IERC2981.sol b/assets/eip-6786/contracts/utils/IERC2981.sol new file mode 100644 index 00000000000000..406d2a3ea1673e --- /dev/null +++ b/assets/eip-6786/contracts/utils/IERC2981.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/utils/introspection/IERC165.sol"; + +interface IERC2981 is IERC165 { + function royaltyInfo( + uint256 _tokenId, + uint256 _salePrice + ) external view returns ( + address receiver, + uint256 royaltyAmount + ); +} diff --git a/assets/eip-6786/test/ERC6786.test.js b/assets/eip-6786/test/ERC6786.test.js new file mode 100644 index 00000000000000..07a03e33bdb865 --- /dev/null +++ b/assets/eip-6786/test/ERC6786.test.js @@ -0,0 +1,65 @@ +const {deployContracts} = require("../scripts/deploy_contracts"); +const {expect} = require('chai'); + +describe("ERC6786", () => { + + let erc721Royalty; + let erc721; + let royaltyDebtRegistry; + const tokenId = 666; + + beforeEach(async () => { + const contracts = await deployContracts(); + erc721Royalty = contracts.erc721Royalty; + erc721 = contracts.erc721; + royaltyDebtRegistry = contracts.royaltyDebtRegistry; + }) + + it('should support ERC6786 interface', async () => { + await expect(await royaltyDebtRegistry.supportsInterface("0x253b27b0")).to.be.true; + }) + + it('should allow paying royalties for a ERC2981 NFT', async () => { + await expect(royaltyDebtRegistry.payRoyalties( + erc721Royalty.address, + tokenId, + {value: 1000} + )).to.emit(royaltyDebtRegistry, 'RoyaltiesPaid') + .withArgs(erc721Royalty.address, tokenId, 1000); + }) + + it('should not allow paying royalties for a non-ERC2981 NFT', async () => { + await expect(royaltyDebtRegistry.payRoyalties( + erc721.address, + tokenId, + {value: 1000} + )).to.be.revertedWithCustomError(royaltyDebtRegistry,'CreatorError') + .withArgs(erc721.address, tokenId); + }) + + it('should allow retrieving initial royalties amount for a NFT', async () => { + await expect(await royaltyDebtRegistry.getPaidRoyalties( + erc721Royalty.address, + tokenId + )).to.equal(0); + }) + + it('should allow retrieving royalties amount after payments for a NFT', async () => { + await royaltyDebtRegistry.payRoyalties( + erc721Royalty.address, + tokenId, + {value: 2000} + ); + + await royaltyDebtRegistry.payRoyalties( + erc721Royalty.address, + tokenId, + {value: 3666} + ) + + await expect(await royaltyDebtRegistry.getPaidRoyalties( + erc721Royalty.address, + tokenId + )).to.equal(5666); + }) +}); From ec29e01f976117de558bd1de9892d14b9d544845 Mon Sep 17 00:00:00 2001 From: "xa6dou.eth" <118254027+a6-dou@users.noreply.github.com> Date: Sat, 20 May 2023 09:47:54 +0400 Subject: [PATCH 25/27] Add EIP: On-Chain EIP-712 Visualization Merged by EIP-Bot. --- EIPS/eip-6865.md | 155 ++++++++++++++ .../eip-6865/contracts/IEIP712Visualizer.sol | 43 ++++ .../contracts/SeaPortEIP712Visualizer.sol | 192 ++++++++++++++++++ ...ent-EIP-712-signature-wallet-interface.png | Bin 0 -> 155621 bytes ...ion-EIP-712-signature-wallet-interface.png | Bin 0 -> 212926 bytes 5 files changed, 390 insertions(+) create mode 100644 EIPS/eip-6865.md create mode 100644 assets/eip-6865/contracts/IEIP712Visualizer.sol create mode 100644 assets/eip-6865/contracts/SeaPortEIP712Visualizer.sol create mode 100644 assets/eip-6865/current-EIP-712-signature-wallet-interface.png create mode 100644 assets/eip-6865/vision-EIP-712-signature-wallet-interface.png diff --git a/EIPS/eip-6865.md b/EIPS/eip-6865.md new file mode 100644 index 00000000000000..0bf78ab6806b7b --- /dev/null +++ b/EIPS/eip-6865.md @@ -0,0 +1,155 @@ +--- +eip: 6865 +title: On-Chain EIP-712 Visualization +description: Visualize structured data highlighting the potential consequences for users' assets +author: Abderrahmen Hanafi (@a6-dou) +discussions-to: https://ethereum-magicians.org/t/eip-6865-on-chain-eip-712-visualization/13800 +status: Draft +type: Standards Track +category: ERC +created: 2023-04-10 +requires: 712 +--- + +## Abstract + +Numerous protocols employ distinct [EIP-712](./eip-712.md) schemas, leading to unavoidable inconsistencies across the ecosystem. To address this issue, we propose a standardized approach for dApps to implement an on-chain view function called `visualizeEIP712Message`. This function takes an abi encoded EIP-712 payload message as input and returns a universally agreed-upon structured data format that emphasizes the potential impact on users' assets. Wallets can then display this structured data in a user-friendly manner, ensuring a consistent experience for end-users when interacting with various dApps and protocols. + +## Motivation + +The rapid expansion of the web3.0 ecosystem has unlocked numerous opportunities and innovations. However, this growth has also heightened users' vulnerability to security threats, such as phishing scams. Ensuring that users have a comprehensive understanding of the transactions they sign is crucial for mitigating these risks. + +In an attempt to address this issue, we developed an in-house, open-source off-chain SDK for wallets to visualize various protocols. However, we encountered several challenges along the way: + +- Scalability: Identifying and understanding all protocols that utilize EIP-712 and their respective business logic is a daunting task, particularly with limited resources. Crafting an off-chain solution for all these protocols is nearly impossible. +- Reliability: Grasping each protocol's business logic is difficult and may lead to misunderstandings of the actual implementation. This can result in inaccurate visualizations, which could be more detrimental than providing no visualization at all. +- Maintainability: Offering support for protocols with an off-chain solution is insufficient in a rapidly evolving ecosystem. Protocols frequently upgrade their implementations by extending features or fixing bugs, further complicating the maintenance process. + +To overcome these challenges, we propose a standardized, on-chain solution that can accommodate the diverse and ever-changing web3.0 ecosystem. This approach would enhance scalability, reliability, and maintainability by shifting the responsibility of visualizing EIP-712 payloads from the wallets to the protocols themselves. Consequently, wallets can use a consistent and effective approach to EIP-712 message visualization. + +The adoption of a universal solution will not only streamline the efforts and reduce the maintenance burden for wallet providers, but it will also allow for faster and more extensive coverage across the ecosystem. This will ultimately result in users gaining a clearer understanding of the transactions they're signing, leading to increased security and an improved overall user experience within the crypto space. + +Currently, most of the wallets display something similar to image below + +![](../assets/eip-6865/current-EIP-712-signature-wallet-interface.png) + +With visualization we can achieve something similar to image below where more insightful details are revealed to user thanks to the structured data returned from the EIP + +![](../assets/eip-6865/vision-EIP-712-signature-wallet-interface.png) + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. + +Contracts implementing this proposal MUST include the `visualizeEIP712Message` function in the `verifyingContract` implementation so that wallets upon receiving a request to sign an EIP-712 message(`eth_signTypedData`) MAY call the function `visualizeEIP712Message` at the smart contract and chain specified in the EIP-712 message domain separator `verifyingContract` and `chainId` fields, respectively. + +Wallets SHOULD ignore this proposal if the domain separator does not include the `verifyingContract` and `chainId` fields. + +```solidity +/** +* @notice This function processes an EIP-712 payload message and returns a structured data format emphasizing the potential impact on users' assets. +* @dev The function returns assetsOut (assets the user is offering), assetsIn (assets the user would receive), and liveness (validity duration of the EIP-712 message). +* @param encodedMessage The ABI-encoded EIP-712 message (abi.encode(types, params)). +* @param domainHash The hash of the EIP-712 domain separator as defined in the EIP-712 proposal; see https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator. +* @return Result struct containing the user's assets impact and message liveness. +*/ +function visualizeEIP712Message( + bytes memory encodedMessage, + bytes32 domainHash +) external view returns (Result memory); +``` + +### Params + +`encodedMessage` is bytes that represents the encoded EIP-712 message with `abi.encode` and it can be decoded using `abi.decode` + +`domainHash` is the bytes32 hash of the EIP-712 domain separator as defined in the EIP-712 proposal + +### Outputs + +The function MUST return `Result`, a struct that contains information's about user’s assets impact and the liveness of such a message if it gets signed. + +```solidity +struct Liveness { + uint256 from; + uint256 to; +} + +struct UserAssetMovement { + address assetTokenAddress; + uint256 id; + uint256[] amounts; +} + +struct Result { + UserAssetMovement[] assetsIn; + UserAssetMovement[] assetsOut; + Liveness liveness; +} +``` + +#### `Liveness` + +`Liveness` is a struct that defines the timestamps which the message is valid where: + +- `from` is the starting timestamp. +- `to` is the expiry timestamp +- `from` MUST be less than `to` + +#### `UserAssetMovement` + +`UserAssetMovement` defines the user’s asset where: + +- `assetTokenAddress` is the token ([ERC-20](./eip-20.md), [ERC-721](./eip-721.md), [ERC-1155](./eip-1155.md)) smart contract address where the zero address MUST represents the Native coin (Native ETH in the case of Ethereum network). +- `id` is the NFT ID, this item MUST ignored if the asset is not an NFT + - if token with `id` doesn’t exist in an NFT collection, this SHOULD be considered as any token within that collection +- `amounts` is an Array of `uint256` where items MUST define the amount per time curve, with time defined within liveness boundaries + - the first amount in `amounts` Array (amounts[0]) MUST be the amount of the asset at `liveness.from` timestamp + - the last amount in `amounts` Array (amounts[amounts.length-1]) MUST be the amount of the asset at `liveness.to` timestamp + - in most of the cases, `amounts` will be an Array with a single item which is MUST be the minimum amount of the asset. + +#### `assetsIn` + +`assetsIn` are the minimum assets which the user MUST get if the message is signed and fulfilled + +#### `assetsOut` + +`assetsOut` are the maximum assets which the user MUST offer if the message is signed and fulfilled + +## Rationale + +### on-chain + +One might argue that certain processes can be done off-chain, which is true, but our experience building an off-chain TypeScript SDK to solve this matter revealed some issues: + +- Reliability: Protocols developers are the ones responsible for developing the protocol itself, thus crafting the visualization is much more accurate when done by them. +- Scalability: Keeping up with the rapidly expanding ecosystem is hard. Wallets or 3rd party entities must keep an eye on each new protocol, understand it carefully (which poses the reliability issues mentioned above), and then only come up with an off-chain implementation. +- Maintainability: Many protocols implement smart contracts in an upgradable manner. This causes the off-chain visualization to differ from the real protocol behaviors (if updated), making the solution itself unreliable and lacking the scalability to handle various protocols. + +### `DomainHash` + +The `domainHash` is much needed by protocols to revert against unsupported versions of its EIP-712 implementation. It identifies the needed implementation in case the protocol implements various EIP-712 implementations (`name`) or to revert if the `domainHash` belongs to a different protocol. + +In the future, if there is a registry that reroutes this EIP implementation for already deployed protocols that can't upgrade the existing deployed smart contract, `domainHash` can be used to identify protocols. + +### Amounts Array + +We suggest using an array of amounts (uint256[]) instead of a single uint256 to cover auctions, which are common in NFT protocols. + +## Backwards Compatibility + +No backward compatibility issues found. + +## Reference Implementation + +openSea Seaport NFT marketplace implementation example is available [here](../assets/eip-6865/contracts/SeaPortEIP712Visualizer.sol) + +## Security Considerations + +`visualizeEIP712Message` function should be reliable and accurately represent the potential impact of the EIP-712 message on users' assets. Wallet providers and users must trust the protocol's implementation of this function to provide accurate and up-to-date information. + +`visualizeEIP712Message` function results should be treated based on the reputation of its `verifyingContract`, if the `verifyingContract` is trusted it means the `visualizeEIP712Message` function results are trusted as the this proposal implementation lives at the same address of `verifyingContract`. + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/eip-6865/contracts/IEIP712Visualizer.sol b/assets/eip-6865/contracts/IEIP712Visualizer.sol new file mode 100644 index 00000000000000..63e2f4a27f390c --- /dev/null +++ b/assets/eip-6865/contracts/IEIP712Visualizer.sol @@ -0,0 +1,43 @@ +pragma solidity ^0.8.0; + +interface IEIP712Visualizer { + struct Liveness { + uint256 from; + uint256 to; + } + + struct UserAssetMovement { + address assetTokenAddress; + uint256 id; + uint256[] amounts; + } + + struct Result { + UserAssetMovement[] assetsIn; + UserAssetMovement[] assetsOut; + Liveness liveness; + } + + /** + * @notice This function processes an EIP-712 payload message and returns a structured data format emphasizing the potential impact on users' assets. + * @dev The function returns assetsOut (assets the user is offering), assetsIn (assets the user would receive), and liveness (validity duration of the EIP-712 message). + * + * - MUST revert if the domainHash identifier is not supported (require(domainHash == DOMAIN_SEPARATOR, "message")). + * - MUST NOT revert if there are no assetsIn, assetsOut, or liveness values; returns nullish values instead. + * - assetsIn MUST include only assets for which the user is the recipient. + * - assetsOut MUST include only assets for which the user is the sender. + * - MUST returns liveness.to as type(uint256).max if the message never expires. + * - MUST returns liveness.from as block.timestamp if the message does not have a validity starting date. + * - MUST returns a set (array) of amounts in assetsIn.amounts and assetsOut.amount where items define the amount per time curve, with time defined within liveness boundaries. + * - amounts items MUST include the minimum amount. + * - MUST returns the minimum amount if amounts set contains only one item + * + * @param encodedMessage The ABI-encoded EIP-712 message (abi.encode(types, params)). + * @param domainHash The hash of the EIP-712 domain separator as defined in the EIP-712 proposal; see https://eips.ethereum.org/EIPS/eip-712#definition-of-domainseparator. + * @return Result struct containing the user's assets impact and message liveness. + */ + function visualizeEIP712Message( + bytes memory encodedMessage, + bytes32 domainHash + ) external view returns (Result memory); +} diff --git a/assets/eip-6865/contracts/SeaPortEIP712Visualizer.sol b/assets/eip-6865/contracts/SeaPortEIP712Visualizer.sol new file mode 100644 index 00000000000000..43144c633901c6 --- /dev/null +++ b/assets/eip-6865/contracts/SeaPortEIP712Visualizer.sol @@ -0,0 +1,192 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.17; + +import {IEIP712Visualizer} from "./IEIP712Visualizer.sol"; + +contract SeaPortEIP712Visualizer is IEIP712Visualizer { + bytes32 public constant DOMAIN_SEPARATOR = + 0xb50c8913581289bd2e066aeef89fceb9615d490d673131fd1a7047436706834e; //v1.1 + + enum OrderType { + FULL_OPEN, + PARTIAL_OPEN, + FULL_RESTRICTED, + PARTIAL_RESTRICTED, + CONTRACT + } + + enum ItemType { + NATIVE, + ERC20, + ERC721, + ERC1155, + ERC721_WITH_CRITERIA, + ERC1155_WITH_CRITERIA + } + struct OrderComponents { + address offerer; + address zone; + OfferItem[] offer; + ConsiderationItem[] consideration; + OrderType orderType; + uint256 startTime; + uint256 endTime; + bytes32 zoneHash; + uint256 salt; + bytes32 conduitKey; + uint256 counter; + } + + struct OfferItem { + ItemType itemType; + address token; + uint256 identifierOrCriteria; + uint256 startAmount; + uint256 endAmount; + } + + struct ConsiderationItem { + ItemType itemType; + address token; + uint256 identifierOrCriteria; + uint256 startAmount; + uint256 endAmount; + address payable recipient; + } + + constructor() {} + + function visualizeEIP712Message( + bytes memory encodedMessage, + bytes32 domainHash + ) external view returns (Result memory) { + require( + domainHash == DOMAIN_SEPARATOR, + "SeaPortEIP712Visualizer: unsupported domain" + ); + + OrderComponents memory order = abi.decode( + encodedMessage, + (OrderComponents) + ); + + UserAssetMovement[] memory assetsOut = new UserAssetMovement[]( + order.offer.length + ); + + for (uint256 i = 0; i < order.offer.length; ) { + uint256[] memory amounts = extractAmounts(order.offer[i]); + assetsOut[i] = UserAssetMovement({ + assetTokenAddress: order.offer[i].token, + id: order.offer[i].identifierOrCriteria, + amounts: amounts + }); + + unchecked { + ++i; + } + } + + ConsiderationItem[] memory userConsiderations = fliterByRecepient( + order.consideration, + order.offerer + ); + UserAssetMovement[] memory assetsIn = new UserAssetMovement[]( + userConsiderations.length + ); + + for (uint256 i = 0; i < userConsiderations.length; ) { + uint256[] memory amounts = extractAmounts(userConsiderations[i]); + + assetsIn[i] = UserAssetMovement({ + assetTokenAddress: userConsiderations[i].token, + id: userConsiderations[i].identifierOrCriteria, + amounts: amounts + }); + + unchecked { + ++i; + } + } + + return + Result({ + assetsIn: assetsIn, + assetsOut: assetsOut, + liveness: Liveness({from: order.startTime, to: order.endTime}) + }); + } + + function fliterByRecepient( + ConsiderationItem[] memory consideration, + address recepient + ) private view returns (ConsiderationItem[] memory) { + uint256 recepientItemsCount; + for (uint256 i = 0; i < consideration.length; ) { + if (consideration[i].recipient == recepient) { + unchecked { + ++recepientItemsCount; + } + } + + unchecked { + ++i; + } + } + ConsiderationItem[] memory result = new ConsiderationItem[]( + recepientItemsCount + ); + uint256 resultIndex; + for (uint256 i = 0; i < recepientItemsCount; ) { + if (consideration[i].recipient == recepient) { + result[resultIndex] = consideration[i]; + unchecked { + ++resultIndex; + } + } + + unchecked { + ++i; + } + } + + return result; + } + + function extractAmounts( + OfferItem memory offer + ) private pure returns (uint256[] memory) { + uint256[] memory amounts = new uint256[](2); + if (offer.endAmount == offer.startAmount) { + uint256[] memory amounts = new uint256[](1); + amounts[0] = offer.startAmount; + return amounts; + } else if (offer.endAmount > offer.startAmount) { + amounts[0] = offer.startAmount; + amounts[1] = offer.endAmount; + } else if (offer.endAmount < offer.startAmount) { + amounts[0] = offer.endAmount; + amounts[1] = offer.startAmount; + } + + return amounts; + } + + function extractAmounts( + ConsiderationItem memory consideration + ) private pure returns (uint256[] memory) { + uint256[] memory amounts = new uint256[](2); + if (consideration.endAmount == consideration.startAmount) { + uint256[] memory amounts = new uint256[](1); + amounts[0] = consideration.startAmount; + return amounts; + } else if (consideration.endAmount > consideration.startAmount) { + amounts[0] = consideration.startAmount; + amounts[1] = consideration.endAmount; + } else { + amounts[0] = consideration.endAmount; + amounts[1] = consideration.startAmount; + } + return amounts; + } +} diff --git a/assets/eip-6865/current-EIP-712-signature-wallet-interface.png b/assets/eip-6865/current-EIP-712-signature-wallet-interface.png new file mode 100644 index 0000000000000000000000000000000000000000..9e2a8fb009ff3fa8f046873141f9fb43b1bd4812 GIT binary patch literal 155621 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

e;3xnfrf!_FJ# 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 z zO#fKbZD>`&1&TU>qz)Vb+_XP}jYO`m%ZKa(gj(?TO9ze@(4@UulfK-Azc&L918fG^ zs~Ehmx`KEw1DA!be;A$ud>D9qj&)?l z&~_q=fem3rs@k-RpViCDSG?N&%j=TaL$?4RQib13%CYtbb6MhTu75XH;2W%cN(}IO zBwx{ujQrycH9~g?RkuwVHGIhrER0UWkbU*~Zc^ev3nO30q-LQ4TT>djHgWwIOX&W- zjfc7;NpgzittS1~ZQL`ilDer$@I(%au!G8N~#XJpeKgI-%z5AE`6hgPx zs}bpJJLFthp?m~nWrOP!3KcMF-VNu~-iuA+E1(#ysy%=vnKn1yf`P+qI1&gm#oN>Z zMYgdL(+GneSR@#J(DLvEjnRS(RC8lM^NDoW{U?iMGaeBZDOM5oW+NSE=#xxPHDYiD zo&V=k)0x_uMC(?3g|AZ2q3ZYgRF#Ur(IU25g-tqN*>T0^UYk_F-RsXahqj@BJm%XQKItA!J0fk8c*l^beKyV}!KaOn? z5G2sGixJyM9jj4E1tvos@-TfHZV=GIGh9SwDK3r~r*N!Hzy9BE!*uPj5Faoqj~aUp z$`Uf+htv`MG?Jt??z2)8rkiT?*uRh1BVTTxkCN zW~vyrpz%Htopx-Jt8<@nuZnyz(6WND9iDMn0hY{2&>?}UG3MW7&QcNl2|EDn0N6?+ZHDhww zo_{d)TKn;2;C5RGArqMU#cIR=hk)u|jvhzKX&zg_Y4`o9+C|T?|4Fl;>#%uhuJ(T^ zoD}Vmq`|0oH#%}a3CPjHOrbbL;umWIOyK6af^a0T$nvV(E$~Kja46}I1F&}gRrrAE zE%zkRFLg!5sA#)BXJut=Tx~LPYt+Ps9T7WDlQUIsiyS8N3#C2+1rY9T7%Wnp)OBz= z97N|5ZFh*#I<`QYDoYLW%;{b|@zTNOz=X+#MeH*Qar~+SrrJZ1N{6+V0K9q8JqUv9 z^dXMiM!0wXN*s))y`w7(GLodCU{EMGQcBHn;;+P53?B5yG#-DYT)G;0#j;>=V*AKG zAw|*x7BJZ&$Z81cZC86*X}_kdkE0K#`+fpc6>M)q#Q}@*|0oTh5t8=zVh=h?hKPZ9%~?)|{)5b3YM8zDhDccSFZMBl#< zF4jGg5*QWRhSCRvOYEV)-hn;HO=}Wo(DRG7XDgj@+ zlg~~z(Qnv&yxav)GM_v`8YyqP-%Bl<;FIr)?u5AYqRKKikbvWXn=7aaaRUhgFfCz* z6-B&>D-o_FJcO~gzq2=Qm5`5RGp5L0gw@oR~9g7 z?)+T(=x8NHwmg~NMGExY8LW)(rUUx#a{Nr)T$68?nsJh0J8Rn5?eYE8Y+{CNmHg-` z>PbT;;}gx@SuFk1Vz(okIBxo`>SZuPDFyose^(g@F?y^^nj;sMKLmOE2Wi4Rlp~8t>hESfq1)6Z8_A z!x!d*U}}-lY^9Hpg@$I)T^ z;*oNTYi=_`<<|O8Gjl}@Ze#GpPum`DaRD&sXLYzHVT-pMFQ|Y?t7O!?|8DnEYS6ck zf@0wT0G!KW2*!l$kD2)J{~fr6#~pkyWQ;SFcervHKsTWp z1y{@IqlVz2iy{-VX+ueiJOS73xSpTw{lOe{MHRrwj=--CWQMSpmv|Psx1~|XPx37q zaUV?D7F&4uymmM(DfXr_V(4pjP~BV>H|&fIJHauqDDm0%q*D~+KK`C+I6nALC4940 z{(oHA@92ST!{hAG(?u4F!d&Ak?fF)lBMeRtAAWLcLgQ+0J>WbZMp+xi++ubLCLdB>UOMVvXHh`R6XQlb?#h$C)<3~3o1E6x)-*vI__dH$xNJt4hjxjGmV`CA*=o- zC~njV-gKZe21)*0Juzo&V2zh8M^uHYl-VG1;BTpxAAh3{JAseprm-#^9v$n~%x6(no zb?|50JjnnvI7_&>7lkhEE%Ux;go{_;P>of$DWqAwFjJT~3Lh=V3*#B>Qm-==&G zW=4C_0nrE#GB^YSOh-b5Dks1sm3cW_S3Et*cxQt=e}WzQE6o)LT}J?UFP}lW@ zN^^sfTTgHh!2mPFqj3Sn?s##LbQY+3teoviz03er7A+zsxk~6ia~smcx_w|HHx8xc~BW z0)Qr{oo-p37GxGn2Ij&8+UaWllP}M6sYl1}yLyaKY+1R?gc@esm(A7GbtiDd0BQ`r zMOjUm*$5*T+n3arDB7GV39=4Ya5ezyGQd#bPI&LbJvsku?$G|1<1ru#xrW~%-yMTzmo{XTiaN+*v?l7~ z(~lyMe%XQsz~t|#!1p#&aq7MNHhqDdWw3TP@5*G~SC4y*l6hhv)~ z!NQ8}iDBnmVIh~0h|s6snfjccCV(I9SVj*1k&RbE**KAIW~4!dy%O6000LkkRlNku z?)A+jK$2|zi>|!bvk}J!*Fm0muxOCX#Z##$=3f7;@eovUS>MQz{MB!M{WBOu zzd;4wBpj7SlIq2msQ(FJTD72Rj6W5xc>4Y9P~0MFKSc{m(z0S(21LYrAy!7`gsT|Z>&?el7h&}u|kSFQf+-b-NX>SoUWzL~mBd6vXag7hJm2k4JDW3gb>uS>r4|t+{H_LUiWPt~nQoO* zo8fSsK1om<4fV<;3|qizK(~+-wR~J+F3ueiKGh$Zs=dv;R_A{m#Y5tl3HONmYdy|fL`OsT_f?@O0s)8?uU8n83_-g9 zW-mymLQBLcAItx-3uNgKEC|BcR!ib4`!#CWJQF=6rnG&)%MJX@45azPFw26ON5Jf1 z^8C6Tm*z9Nh|J6J0#j&PouTBSMVO$>$0H3oEP{q>HBTHccTztl3tH9otutv=t8P|Z z)cTkAO^1+jX#ozhA?yVLDjtS4DXSomakRDg{_SJYdD1V;gMiojIb&k#b#|)?acquq z&1YoJ=<)mhKHmfW*w(bWzn?sd(SgVU{hP(xo^K%uT<0IFp$Kj^4rq_wOMqYb4+P-e z?Svgg`69IoJKa81`YXxMg-WHboNm^=GcqFG@_viFxhVDeFYr?zH}- zcH8TPQ}LdulDA4dE7KJVA~IZ`2GZCltK+%ZHAFjRUuQuG6|Fo{avPl%RM$<$DX_9= z{uqH!g)7`Lq(oOBAN;{5HOOL+hJj|512tA91d%@%v0V-L@+_ z9ftwXtZtu$P5Rp~P>LYs|tO+7&n zQ$zH>07FqZqa5Ojm{EN}?Jr7MpZE80{BP~yN&qa8!rvX>WQ)_L2k~Tm>njy%S$gfh z9!5AFjsfo9su3ltx?|4&xF?~PS38u1r3WH6Kqv-wE*q0o2h%RSBd~bc$k|>Y-ozuy{XzTHTKT9KaVDvfVaRtCpvC*|&uIH)G^# zGOjJd8!V$4(?RNOp)ONchR<0VwtV=`Lb3lY#PlVcnfR`*n4>OU-84(pDg_w!X%-2k zt-1OGMzT!_SYs#qTvGboFN+^MkV+psGZrQ?k{Mz$ojp7AFX=WCv&L$IFW zDH46an|>?_nlgp=z+QN)4w_vvCOnWaLC}>SNRp!mvT3#}FpjVKuvnJe&Uh6!v)c(2 zg_8Xc2<;lOImZmVK_TeW{+6h1yTP#w+ADmvDiFaO0vyf;xUPQW{K?Ao)DRTV@mV(YFs6pxVT|$R`L^l3V8?!==35(jV^#^h6rV6D} z-qeJRXe=JTzN%1BP*4zMDCfQaJU+Ga0U8;kF~9ttB6M^_B;swNUTk?IqYS>|(bTyK z2KCa&I~zchkFRuNm{Wj=%&y+gi-@A;%WpW^(%nFS_P?vRF5Neb!;HPm}) zs^TjZyt)B`{tu=H(%D*n3R73^8|227@y$=E3S`^Fh;4CkBEh^P-cK3j)KqzBK7$uGd&o_uIRvJoW|DZ^n01Urw=^^geK%=dQ!JT zPgK0nCzBR<>+^*n;>=k9?{;zRI*q1%CNg>}>PCRsg(cjr4%crb6YSsf|2$A>Bv;;T z2g}>w2sjQj-oIuuiMqKKoq(}qJ>Kv0;=)}_i;%-|paT=D)B5xr0V9i$yiExK2qZBv zf_9uGz@}!UOmvN{#3)+>V~%m2Xf=?q zmxlD|p>`LI6CibJu=qKwmN%=&do{Og@&PD%vFr9V?|D?W3H=|s-a0O-^^N)_q`SMM zM7pI@kQ9sVM!GwPZUvEUL8Tj{yM{)(Q@WIpdhYR@-+Rt^KhN_w%yL+>$`s9 z>2fdeUQx?z3?XeV1AmfDxDW*W!P>A5yufZBI7>3|@>sw;OG6D82C%JgqaeH2zYaEE z0%5}#G_)o5!FuvVhmp${_*J4_7ika8xI5dAaC&dtsvJ>N+SD8#@*XV4$r3`K(2y|NY&9 zD94}qqe1aAvid*!)O^@w&|rOC1@^Pw|LMKHME~pHv}4zq`I29j;9pa4q~!a*j$E-d zy?+Wb!i}!VPM*`#tp7e;IsJVkbjWYk=}j!6OEvswAyIqq{_oZ0A0>-E20PAdWXN&l!3uCzk= zIsW}yVZVjFF$DImkZ&)ow*J|lgNr`@`=T&4!pI0uvEx5GrhtbIYJZ*k#l}PRKz(vo z@l(owewIHM{i8r`Qo5$d{L2=C(hyMEl@vvVGoT1B* z6zTu{&ftR?z&==P`Pt?lK|=qsv`==o+t^c*{_H@Aa;4YLeL64OE{gM%64>g*#hBka#s$pcDHp>AsGTcT^kNg;?N#dhFF!n*HfdAG>Au^58l%yJ`1EQ!uEVK9qnmpW-Z! znc4E4@9FKuU50issuk;_qr_jpo=2xX`uQR#arX1Og0>jbx+Qs#_XGs0nk$G1G<4+F>1#@zDD5Y@V{e2v%SE~lnz1*~A}NrXLcgTivj`qNWb8r=>eJ;J0tIdW#&D~o zW%=}tdyMGKap&Q|@d-$E*^HjE2p(A%x?C=}R{+&_S+#+MPro=nfZ~QCxPi(k^l%Sg zi33jeh!=w}S!AZ;^H|Z-XI3zpd5Mmo?lcQ8Soz|$s?0Z^wLBNPBD9(=&0ujh3_ETC z?5TnD2It`4>2R_jwWwS}jcUtS4$!1f-t;HWHV4MJAPqolWg&TGoM$ z{(ucw|26^Kj(DyIc*;^YV2@Pg!I|yp==-pZE0WB()KA%FvEdZDbCSE$Wt`R4`O7Wd zi*v38(4LosYUWlW&qaRmRUA+r>@w%nZnaz=CDbi>vA&&acmX8dFi@`5@{4D5m^?sY zVUi-@-{Nz;in66GdJhiRj2~~d@rCw^tMUQ*`$Y8pB-fu})d_x{0GR)GBfLFTgKvW{ zIBRp(Hk}>sL?$bzegx;sswCg=_1V`aKHvuE?RKLG#=ux#e z+wNJfPpyp!!4mXTg}GT(vV6}|em0d_JSk1brfr!x%AmHJp^F37W8yPz;XvRARmkxF z9)VhC+>PGg{<|4(dLQk9>qg(Zm)BV}2aLSDFPbh5g7F{nIgGX?ccp}l00rUBd|jDj zu3p2|oOLe#=l_*|y2x@6^P&T2PC*Guspkjg73jYXHC!KoZ9`J@Jdd(`k1IL3`5QLJ zE%K2?hjpwLL~Jf;O2$ZIQpZEUd(G z)yK%q*f(qv3!N=n$aN)5^n?B^Yzwn$xFRBKQY}ed%#|mdQngI=u*3ZPoR#4i-8?|rOhmlNs^>V zC~_=z>M$~vcG*%hCK_~S(dCi*^KT->SM)x1sNR3|!>2Ky0Y1`fU(W;B2LA_%=w+=3L>(~0TDVLcB)WCjd2IX zSCz0nxVTv?VM|uax=V3by8!~vcVcP26Y$6c)XN@D>pIgM4J`hT1rQVA4c0Xn;_}+^ z(*1a)U0PnT398Q(6{v;8%LkYpiGYfeYDekc>){Dno}D9(0Zd+!_wZYD6!uL<4pkec zG&Og0AflApioPxU9sLG)?gfpm%(Q<*%|3xVQ=8gp zYhPJsrx`5F@_C%Lw7elw1<$?J_{xAzNfmeQekb{MTL2s9Q9^+>S+@%;Jq#wu!!Z_pP1O9PBY3z}rOY zM%cUoJ_TN0!+3MP>BUA@l3k1r%)!ddL7U2 zQZNCn&c^*+P_^lp^*0o^T4Tt2w|v@943TgpI1q&lgUV%^({m5xRO@NE;Ye=W3|{Y8 z?!{c)an^1g3lJ4jZa}gI->+b6^~7==hKK%Ei1GK{?s-=# zQ>|a$JWkP&=e-!TPayr(nOV%45q!Y}DbH)~u|aBgfqaoFn*_=fkSE-wyCuGAjE1$* zg+`!a65ccQHf^18-z5n&3CqTAX11MWX6UHFgU`D`Fof-2fhv-34T__opAG$En3fpB zD^A~{ya3e)OVn1SNYB#0U6lk+0Xf=N1*y2_y+sz_w8`k3r0~xCblIC4!nGEr6DBWf zcmX&Prd=iU%Ex&0()oh2(BgQeaS(U!wRf;T(GS>G1l2jXEv!1aWI1N?N+KYzD({V6 zlSf6$`&!2{jIH(F7(s2r@bv(At&MbV%Wh(*fgv(KOx8X2z}wMeAe9UsmC1@erh#Z+ z1$ekQi!${Xf%azL{K-ZV8N!1DYT0&d@=7E(4lZ79+qY9TSP*zr1Vo<3I|gDS_uL52 zzJS8+5A2v^TOv9>v8BXb7uCh?GU+2s|Xw3v3()njTu(fV-yxTLl zfB%kNE|q8blQjwN{7NWHp)|CQJPndbEC?wMZ!LSTz7KEJKzTl=@OVZlEJ1KW2UPkN zphUZ@h#nmkcgU}3S)~RkPmb-@{Mpg~EsQ1dJH z^Q+-rrB_j$q0hzy!m+GeJF3o4bZ96pn3gQ0A=~Pfm~>)Gasw1`^JBl+g=;prB>4CL zu8t&EJ4W|(KPP6_WdNZM^-Vw~8DwkD2D5Q~0vKPpynaHHC}ORNfeK}jg-hCx$)6)7p9mS)}IVt!WZRV$930M(^lI=E9 zO|BFju}oywKD&sBOnmjQB4`<^;tUyREM8`a`+gH`SvzqUPl=VM2LYsKIvO3$GxYS( zXtmPfnH1)IU+&ps0%YyvUL*2}FV2MyxX3SN?CJlf^*R>22sl-3u%LzXOel`>Sg$+! zLu&c$bSdMgc-2*fHVJtrf;>Yt*zOWP6bz-xLG?X4zinTQ4I{Hu{iVjM3@oYCzw|9B>X1MoZh!?zsHbJ4#)NT`X2pKA?Wp4_SX0un# z0zX~RB0w~9ZmA}Vy&x(3_WQB->0G7|xkS>m#L3K;3au@4?4FkINK#EMuBH1PEnAj6;`Cd?-<#*L zOPJR8W~aoo<=G^9McI;&RgXxH>=~~UEH{)Y!o9bW5mf6q8%UVU*IMZ*%lx)e_SzN2 z*D|F!Xy^)tPguf~TN^9(UUwJ)-hCZ>bWh9W9N*wNx;Y}{AcjedrrPtG&&h1wrYS5F z$%BT6rbr!FCw_*jh?Nej(%wRA(^QsH`o*;gr^eF_*(q@XLog3pw5>$c)uRdZpd>Ad zxLd5bsTq%bPIGAjW>vmIORKRdug$MX8f3ghnuvNwyy@HWA{6;hX$~tTyo07$G2Sk0TPc^e-g(JLFYfsTFV10qTU}TeIcnl95sQ!C=3^H4LWfZ8lR2gmwBLG1K7;lr4eQ1 zC{c;a6+}q zt}`RX%p<$bZ>?8PXWB7es-zgNKA!u%fSwsiD}fsIDMe3ufp5w8`7;@6p4QWZiRTz8 zzR}dScAggMHyw@Bp9$R5!;l);7HZySnF(0xm`rTk&5=^krwXLms zU=z=Su~T6CR5LmnEm^}xC(sy8#mkOCJB1#5j%KaLya|MWzsUO}mKWWneME3zWR63- z$W~jBRUs{;1=HXzMwt!o)J~ivdg@?LGW0y8y3zr(TxYrx+nFd}6Rv!Hqhc{rIaZ%T zXPVy(2#TI(C4yK+VxY9KQHlH!&CNcZmhTx`X2sfEfH7;Yv?$+-^3}=y=0`m{REAWA zXW>c%H>e_1f?e2wZCr~n1^8HG9cx_sO?Wo?ph{%hH$Nm}AN$ppH_-VcuKQUX<_J$r z8?jL8H7nn|Wqtc6i;>Kpg@=N{R71k#Zp5D0q)*xm2{?`9Wn%TXslr4)_eGS?@4O@q z&xx=B;zmmM1xIr{{N>DQ(bGQqp7U`Wo}zX+jEI8SUwebbFAHYqLfMjxrLtHLUvrxU zb|)p`*@&?~67dE`fe}AmYA4Y(CkdI0XX2>m(t2-KDeix!G*9skh}{MrK@I z^%Q3Znwuwnixkn=ecFUy1jP%}>rI#_e!!~_eYi4CG)`Gou8LG?uUsl!C0A>|;h89z z?EJ6-TL1aF+C6-^Ci-LK3q0S znWogvG`pt$c#b||)1{(MH5gYO#0V(ws@CLZ4#fP{D~v{pLPve$yfJt3=}gEou_IMy zo|9@Cil{=4jEOmo>M$7Ei|zyNdIUL+fVq19sZ#QJIaj}(b|Qfh^U%h@{oT=h^kNAW zWrL@wT8P`$>L;AWk3-zDF|o+6;HyP2iMh(!22l`2L@5n1q6-O*TsSt;Po;Y!z7UdL zqM1F=u6I;h#Gq<3NX z!CI%~`I!I~R5IYHYS&U|U2AP77jDPlWUATB^_U--smWv6Z7P*0sNr?sbro_`@|9#F zEtURi1~j)JN}$#m}>;Np}%&toyI(p5>vtZyw(9W?_XKvdjCheW?p73)s)Eag>8<@Z+ak_>LrDia4y zYfnK$fpd3BV?1vH+MmzS8lQID3&I`(8n?xr$ySGri#OAmwm-^8zn;cpJSyYr4l6*v zcsV8Tk?Yb-Za&H!TP09~){Sjf`uNTMZ{H!DjzeFAQRgD50s=XV=<~7X#csi0jQ1r< z)Oo2pVrdMUI!58Vhv3%e_AR?od?g_sd*M1rf`RHz5BJZ-SNrKXdXoowk*Tqs%vlLP z*$AbOe$`KB&!wMJ)fOj)C{`9g@@mvCqb>?-BqzsY9sikW#2O>!Y|kc{G+92Ib~}#1 zl3Dx>?S4|g{N_n?I5;7xTCx**yGRi3pz7i=A{iLdP`=)MiX zoF9sBigHY5`)EgjDfo25I~lxi5K%kkI}pEaCpMAytOFw!QFf4?>CWB z4$0PX`AU9%!=fzI9c2D4Bq(}~J3?}OWjlth(BtNCLT&D8_=H8UsAO<8g1T<*THSjI zYOKZ>RtdkwodZjKH4mJYIjgQQLX*a$IpM~9zEms`4BVX?t&QM)1 zl&qdjw|bQAWi5pCx+&xF7Ulbp#o{#g()A!5TfwzClWmeKZoII&)mcPQY*tTA4_*R3 z=**Ni_i9RORC(TFcXYTEF5+ssDE{ovGmP1;Ms&nB&8WwE6PTz>yuwR?Kfr0to)?u~ z|A_XzwSGTN2ewwntwC`L+mW}HPFt=E-+n%Ppo7@YQ5kcU5bN_cvFhWg>R8b#I)YYA zx94J;uh+frLCK5h^E=J+revxb+xe+v^l|e!Ep$=*F(XfuFIO+j!I440;E>bY0cgc} zApFEv+5|F!(PBM1{Z@q;=H`PfKT_?xw zydoGrg8r`c{zG{famLqBF@KCV#WM~l&n#q_AB+XnucKqJKiGK8Y%~|UV};J4jTJ7O z@eqMb3fr_}xHQc&vA>mOmY)pu7Q!HDIref@D2#nf4;1-$*SYNWpPW(eA1-@tQ(ZWc z;W=HC3@SzIjXr4TS`V+2ihMd_{TkTVl z!CaVXf%avx*vWxbaFiekF{=)lfJ<_@BVs8Z+P2`Mt|S-^I8?TAiQrV)Z}f@Ik+cAo zUn}NI2j|&pg;x`FxmFfccp4qSVv$M;6jN_!QWT8kSd!E%4x83hUlkZ1l#{b#@3lju za4>wD&DzD~myRVNT%;G@=BihVufnH0W1ElekQw(&$-vs}7MMEkI5p$j9??=;y-CI?s z&M-`u(NqG#G$f-nQd!O8=n==c-yUmGbs1RN=31kXQR>87Cg+eZ3AWaB&6BPom$_IL z_8}e&nLHL~-c3y0`6I5(HH{Xq2pv*5% zptOH0z~Go=qz3WjVnV{yn7Ij`^5sp}0mcvK+ygA5tT!EY?~dFhgoiE4u=w=g#i+z^HjS_ zUT5r8h^bnExe9PwKd=;ye;)4!AS#Em%OtYjxpUT zG66CpVG3y!vRHx76&T-}N>}!!wN9sU%`h%L;PnbFIpnQ8CNwyR7wTFR;!d>{TV?A} zb_Y5!!5}L%{inD`r5`ZY9PWDs+gT&BxK=tpkyE{8n>Va>Dc;L|7naZa$VrUzs{5eX zoMd`jbFHMev27a5p5%!$ds2U|*+)HdfoBgXMI?I2B_Gi3Cvuv9X=6#+A=?Spn5n^^ zuJ#j=n0rFH5g?TBJJ_q!K@mFZbdV%?tt{F)6&+;{zgh>m1hqg*o%N4)%Cg7l9kkqa zTN-{Rv)0MoYCV<&c?U1z)7+9gAW2${DMZ??<~+9#kkHYw2aKxq%5F2OrgJ|CL1VZ? z2CP=B=bev2bp-A-TT9W>8XGx1E9|Ids~F~>f!|!CL+lQZ#!6|eN?>$>0!)TqGz_63 zI+vg27O<0g;OAcy&{U{|#d~i`GVRY;NOSD8abHUnky}?}{4zQmGEv=5Le+ej_R8bP zw^k{O+eB`rx9-AEbsMu%-%Dsvo$3H%nPKkYA;(9{dN3IjdX=O}m4!w;eLK@aUm-w< zmSAGB%EEvc!xL0ytz2`{<)u@RJkPa(R>qajlIoUO?#BICyfH~rBPgh()Zx) zXI87i7b0Q*W>qNCm@%=E?(wG6ZtU0nn~qWn=BtmgT^sIuy+c&!#74``%Q2CBHQb{*MlK(Pbhuuw5yJ>oELX#%YqdGWz_Bve3mEo%4C54;MK|rgV&uM|GX6 z!f9G#ITa$Tjn!UA50#ivr3~o|VOF#7#fBs;9MQeYh$2T5Udri`Pa?jt&0n%u;LS;J zy@OfYIPsW$ah3MaajS48I7R)eoXd<9JF3Eq^qf2EdlOOkYz@OSs0C=w2&^j!t<{XP z23d`^8^@C*6Pv3@1?(=S5AP!9Uz(fcVm;h9d@^<6x?a-@(lXvzYwMXTSQ=}u3{&$A z_I<+$_QlV|BIT;d@$r}-{c~Gw?iLK7JC?1+L(=uDAoiF88ad`ShJ9H>w1M|AClSSc zC?bZL^MGvxnY~KAle$PW-i>d+38QFP|m5|SiTml3t~D?%W$Hc|lI|FXXK>BHR* zg;+fBcQ;`|m?HZRmnyB?mttz@68YScF68Tf7(vWd&PUyU>pk{_ATFLMG= z7Dck;ZaL2R1jB5M$qasGcW`*)JjMKEUbAyZ=rPca5JUNJ>x|YGs5Y-XBaAeZg*~b} zEhEm9xUd3W8z;o{5M3K7SwdRqld!x+9pgyx7DL4{w@qft&zcsgKCH96DkMF??p41u zPwvdV3UrVbEm>hiJP^XSJ$Z;o8xFrQU540u6W;BG`F^xo`~Kvd>acbR*Dkz{sA#i& z0m-Rb{k*h(qG{#FoS8P35QhEvK_3*9fyr209g!pgA1r!FZpXUyJgnsTWAMmfJj(9=gqj)t{`d z`Q}KVE;qZ4^O+54@|*H0dCISG-aUb`r8NA)H@5y3c4gLhe(>;IubkXTw2g~kZJI`> zLq#WOCrd;rL>lhe{?DfFFqCvHw|xHD_N39dYRR=&0IC8IkuaF?*#=>|#l)LK1(4Aszuax~Ll0 z+b~jrrluS%Qj>%uSFw)-Ms+$h>w)lDHSwb1?`&^o;E+iIY!+7QMxia!w@-^YI1286 zPq#+bz1OjC=I`y6!?`Ii*f&hd11~-G%9niWM~rnvuG@h}gm=Vg z=tI*rxolL}Uh$Y@URX~;N`8e&??7k_g|a?rePs@jwnU4yD23o=NI8U{irH{~JEE8K zHXfbWLMEInJ5Xc`<9t5et&eO^&XSqd!jIQ1QP1s1vF@kJ6S`sdd`kL#M7UW~u5F@5 z3hpD5q#*b}y>)5d_DvdI>II9bPNi5NX0X?8+HSD2E>1}?SUm2r9{EDz=131Q6$q=G zamK;?!i(#S`~`FCz`Z}tP2gF|Cs8g8lG39b9#gT)nd&@+Lbh@0>`%4J{1OA{MIPC{ zW*Szzybzhg7k1CWvIJQgi`bXpgJe_cMBoy#V2yt$y5sW5D>8`P)MK@*FT9V$ZS;Bz z#jE6sFIIHMR9`YV;WO@6;C;<3AU_Y!PzC-pH@g0j#$;ozTLm-uWb%S{wP`;bur4et zkr(w&Xx;bUE3TV_TnkW#OPEGp>o=~Xqc-a8*sp(Tm#MPyZP4LGIm|0L<9$^=GG{Q| zTGpI2VXwM`v#{+v5%Fzgc3l?NEgX4+xDqn@qQVGUpiw>dYR&wF)UR{r2X6QkKvaKH z-r)&lbB+mY>xv-o9V)6Hk;HyZG`l=zBt}*zIjTt5yjT-Al2!gfOsG5Vf_aLr{4-f#Iz6#S3*%B)GW(#y zsq{=5zpc4|*F!srgdEGGVgSERX%2t0bx91!Gu~arkrY`5&0*QRd-9EhDzx?gvt zMBIK@EX;Iz@@(0KoVJuq)A z2Tz`&%eco9p`qveBa2yIB~c${%eCW&ZTVW;Cw^pI70G02+Vk*ZImK5;esJL)r+i96ZXZm|nRRZ(N*B@7jxQQXupQs8; z3^ZwQ?R7M<3W6f6mSqou!ZTww9NdZ}M5DIoP+<(RrbiKIL1ET8A#g`k+!pVhs3lM+BP2-{&D4|-a|@7YthyGT_v#r6T41t*G3p^V zP_YDu3yyqVBNSBrh=@nn5n_S3+5GwKL8jL#+}EE_AND%q`c!jWF}l2;c|Gr;XB;~f z6Z?$u2sPU^u-g9C#=2C*xjNbfv$18K(ZKfpaj8^7+Dl|JJ~zx`THOj^+6$prG8akX zie=O6cWD-64DoiSFEViGR4YoOnL zWrzT!EvMunB4F~u98HF3; z|LdhN=-D6n^YPo9{(p;Wb|68n02#@lYZn{m}Y=H1fJ`=Yp+N8{X{v$B??;q+XOnJ$T@oDMbN^nWMOAOdM z(CvFfyr4L59mt^mx8gb*wd*ej6mW6(YKihE|65}YQ>w#ENol~8loPCHo%x?XN~XiE ziwxtPt+Qp4EC1u!fPJ$+)VjZ{j|WPW~&_`TcYzaFE}Q@zER@18ew#r(y~z46DY|G{=Mh4E*AqsD*Nk&JN*Q{ z?E#=b%v~7z<^%lZ{Ycvew90xVV9kNytW8379l<)W>gXXaWC%Ltyp+i4epX zvqe+8){+Gfq4`{cGcd@qB^r0Nv`$Cy=~_G(mTJvc+5(;A4tUohcqq60)9#qb$jDZm zv4i{s=Sb!*fB)K}06@}7*Ezvmj9*Mi4@%1X9D8-l7cI`lRgn*97B6VR|6I#8<7hIpLazFB37ed$%kMgjDFSN(bs#?Qba;wj?@< z`PG(mN#hT2&`=O?1C9(Uuj-{w}MXVxaA zXyLMm-lH&7#7wITRo>o131oq~C8wfvmzU~SE7Z1c#vVSUFQ){#z#cV9!JA_4i=H1T zT_<0plSA7xgu^8lU?OqMZ&0L>*6igH&#J9)prLapUaF1sQuJk1(Wi@{myhK`boP!* z30dpDf0-PA7YIQf00L*5`0(YXYW}(frzntt!Arl^zheq4=R8i6eGcW>%Q2_?J~IwN zXVBL1Rb%ZBDO#@3Mu9@oM(xU4hL+i;IJq;>Q!Ygj>;k z{`?9~5K06ybG}bWA;X3UxWgpR=@(;0J|~+b1q3qdbB!AIuoN*EV{?4(epUp>fhDpS z>*HangI*OvPyqT?aWeM`Id{BNztDC%BQx52=V4UR7cXAChLS!rf3Kz7c$hlnfA2X` z)05h=$SXGSv0+6lENotE@y+))g+)az!oR+MNn#(;XuMAj?NY41_Y=y{6P3y$AlEK_ z2bbXWYj1N`jhI98kvf6!Y@J}sL4x!!WAP*y?J>(Jx^a};FNJ>t@@7iKMGSwi(ZJ91 zc{{;3UpFw7Nq=yyoS+8)r$gk{&Dltt`=x-gW*eBj-61u0z^k-X(MwY`=1kQJtV+Sy zA+fbyHM?7|tPpvs57$%$2>VUf3Ixn(L=dYJGy+%Q(D|!os7{*_K>66vUJ>`Sd%x5DGh~ngh8(=J_l@z( zeP`nn0yFc~+$fIsO+1nX{>SLHNW9s7z@`6bX|zCXY2d@-G+>5Nn1gnBS%l|S^N-SZ zLUVZnHX42q>is<+J10=mkdAwHa7Mi+#pI>foFitK-Qv|J>} zel22?QL~y?ose=4Xm;M$FW><_LSz|DGsjZOeXsAQ8&Gs2?SnP?$$|X_EbgL+3NI%I z*rY4yXS^_Rk(T}emit=-4gq-rVuAy_m*ZqEmwyZj}#Q~psRLHjx z%zy2DCmB^u(XO_kBi0cVGv|RhaT^}ouIG8HV*yiU5KJ z7echu4bt0@Ol@Z?yJ5i-ANh$Q38u^oh6S4{q|DW9d|=PpqR-5k%Tij*I`sjRVVR%sgR9oG>&V)2{WY=$v=r&7=JJYYVwPinFTqtP zePkoDesV-uR5L$3j*LzIqz{IT;OR4+B80@SDiL$y4d|$eEH-I5cS;hjra7=gznCW% zq>HO?%EGnMKwzHlfagV+g53aWM;uImuO;Ec_Wu6knYu(OV5Cqy60mR2C zJgV|5Jtni#Z(6@^xJASFzkU0^-;|;Ir1Eesf<$>QRxgzor_HE~@ ziNu*FmZfyB#hXngW-Df6XjkSzC*B!+3k*p+;DGDcR~U!(+HJXJ900vwPMEB%b$ah*rg1y7KPB_?OdD#i%N&pT&qqVUOKlq4-Vm=XqR)m@eBq&)|9U=rI&vei9Tr5Zufqv$?r{sp{W$A!%Yhf{Q~% z^eVW(E6$eE=h&BwJkNf)spx3^N%rSef`O~R;>FgGFa+l_!sKf0!CWMfFlsqSp;RX} z)Za3OBDsP^r*}cHmnw ztqEoor)G5Xueq9d96+!wHfUYycO7PdWO_O~n|mkknDlU_Oy}FbKIj1=II2?Y$skv4Y6B5IB2!WnUD>cF4Gc2s!bo zQS(pqM8Y=aDLmn-?C$y{k3&9s^$)P96$)9u>C!hkP4$=TwZEd`u`eA(#EAWQ7O9>t z{Cuf3bAlTjl8L18-TL*#_q0!YmoMIFzEUfB%TJcS=z5`dViQ*4?D@umj88R1^l5Rf zn^Yy$1`@nmeH%C@@p>Tbj8(~t9-TiJML`PO*?5s>JT)-GCil2v+5Rzx$YjXbum~p! zt;@uA15UA*B*&_!>E_oDhX;w@ zJ=3$`l3mhdc&@#pIObhZzwJTNT9*?__hF;#Z?f~4XlDfH12}!QyQ(HR zLCPhoAETP2;To77RUSB0cFPruO;x|BR@uEsu)igt96=?n}y?}9@FK`I2mQ`Gc^z9Qi$Gb$za5o=I|D6aZ(AtJ_vT5jNdP*VV0 zKraP;V2x7h1|mkIFz!-7-f>-{1taaN;VY(VcI2ljn6$P1yaMYqw0cKqN3#WTh1@LIF*B?8*~yQ$S|H=;dbUG!=Otbxz|hK zN$;cYtbCJfl=-XZtN|N3b}dhzq-f?WZvXxyML+B!ZrA`4E7m*%@x))90XHZvb-jUT zt95>7kleVU`S+lYieX90D~UWSZRi$A853wGc;*!hh>Q~Lk}BJ1fWCz9dzwdHty#PLx|px4ha`Jto|9n-)A zpt9!>|Nf;)b3?NZPYz7Cjdloek^l~cp*%NE@ehnGx`}@eeg^2m_xQqP$MM^;2CXafhSB&v;U?gDm|vUruFEN??uWE%oXK5?B3^& zC{HuOFGcJ?v2>KY+pJ}Qjj5I_be!gx6sT!~jIeyVOPe>)4l0C{V#4&w=#hs)#NC_Y#8#X?C6*%Cnl??=N>bsE$oal=89e zv)T!(Ns;lCvk*Sxog!V(3~KT8=M$Kb(+IxxgNP!B0T+SH(6RV*5Pj(@ixUQ!4EnfH zZn&-h_1ts(-9DfDxmWCsMRRr*iw`3B={ig6$de10Z-)%6k z8P@Sy#fcFk?sGp^m3oh67)D{={2=7h>G6#Xc<7H}v?xE*V=`Tz?^!$8T6Iq;v_35q zP#zuA&i*nu8lIfu67m~ruH+L{O|Oqmg*e5X*V}c`O3LLBfElpJ7c~5;S#Z2(5M%lC z@|yd&>-IVYPd;xBBUt_fYll)>9F(PyW@yGxKriGgT-vUoeb~IQs%JLP=M`bvTHV8zw$H z3jd-WK;QJ7^M{+>JNVcNJ}(gpU6OG%dVL3a65l(`LjkLfw2frN?7YcRJsmjaD13I* zu0jq@AsY)x6tm_k2Az$kem|ZZ8$v#ij{ZO&v4GE9oJ7+eeNQU?9X%lV=_k~t5j=W1 z()wM8hlBrztgnuXYHPorp^*mZ^a>)f#-62SWLkWt6bPFP-fCB^4Ff`I7 z-Q6i2{`Tm-_xrx@?@vB6XEnIUz%?+Ok5l@033h6!mTO_F z0l3O(4T7Y-W~R43J^QYn(`a8TMQK8iQ0Nh^0dm|}@f7OcdCI!k?>vPBWjML1{mH8M zmpSqUgJ<*mF(3U;mQ!AecBa`g21CUSSP+VaLZ*!CdsPe3VfDX?HL8>XZyiL-I$hxO zrVBqu@exeVYUgsgUUM}rxXLYV4j_ywsp&IY)1|wXc5N_GZrU%F2_d?IDLEf2QSKhFwN6*~)f;Spo*01)yl8MlLhvMA ze_|A3_mU3V;IUY~4usP5W*Jrz_^qwdz;F0Dkl0^sx(d}hGg{-?scjTg?~#Q)(v@6) zatB5Hlz>>`B_{QY-Dqw;%S@N*Z(GefGMJQ963<7%w*_lftTB(GViQ@yKA-!zWAcey zHL9-@8&4wqR>nRf)n@3=pQ+|%oX)bfP4JjujCLAmDqCPZANBc13jj`&kyFxjf2m;? zMnq<(j};!UgAK(qVUV+#))ZVC4{@EQN0F3=4|7t_9)$JQlWKol3~{8M+3*?hTgqT; zr6;&9L1k&m0@_U+O2`O}4gkjbkq3a(vC@tyGQ6q?ns zhP(7F{ojx{7%(CNdr9%5Z9FF2O`e{xG3uPitaF>tGFQsECjOQYOTvUymXvfh`maEDA$Dd%1jabl(* z>g8WN*JJRh?&aOpSsk2Gx_#TAv*j2WJqRnlP1Pe3P8|@uc1bc#?H;^|p#vP?p#}Nh zQrR601DVBdxsg9q*WDUedoYGaV6+5Rqsr7}LP)M2%eXbfyB|Lq@g~vgu{0T0mVvGN z&cgj)bWYjbdXl!pC})nbIeX0Po@n?OXO#AxdObu}&c{ra28lT&w=<17Z8 z4+e=e5a(=~(Xmq9Mp(tRWXUzU2V=kYr$%CNW#B}8x;d7Ip1hqD?qO?YCvSrC8O}8f zH=hJSE9^WNq@gK{xoymsIE|{tc>OiycpI&tWoTyLr4S8Q@m--Lv;FB&|D>O%4qF-i zmc_cXm=1LW>;5CQ1SvhmrwsGi&&DMM21C?BTx;w4>}ie@m7g!PB3IlF1S~jce1ePD zCn}O^M6J9ko^ffG#6Eq5<5ytRKtSa!$kK&X^{nFdjO~y(eRkSAYJuj*C0G0pe)^Dn zgiA@l8Hpv-XF2#`wilP3I|<6rFD&7AOsJil(+T@3rEbluYQvo98XTEj=3?R-I(5<90fZB81PXgwWfh`QM7N8>r3l7IN48iq5~@Ng0_7`b zFEX1-3^ z#5H#Mhf)_e1bof`xfK2%a29*z4mE ztupl0ZDrZ-5jD}A+#fWyz#*k$1@kUcWYQA$rYx0K_8s4+H9!UNs7y*dRxW{hhw;Dq??HArQN$fYvnX;Y{Q4);Ij=I{uDhy0V@} z*6f9KjSNjcBVhyIzw%uhJ-|dz8$Th;*hFCx3su)oGv2*aW|v#Jf3wYP+0Hg%wlV6d zVU$@>v&~T6jUu4xi&MRvoch#Cq1V=aHkos`daHCE0IV*~2zwoOx$8b2^;3-aoWp54 z_muYh*&Ifm5!WLnEj8av+2|hNw;Jz)o!E+F|kqq(V32P4yTb!QPZm%}Nc) zx-7tnS_H|9)Gt|iXHrt?3cvOR14*P0h#1>mCMlwGW!bp~7uBdy?6(Exa}x@;U=wup zLYvESi*Z+wWM!H$ik^9v45hpullmA}J5Wq{43}LmCGZ%PL!Ff2nXj)}HEc;W(KvHRF_|>S z%|iHUrqyy6^_R5ANxsj?_+5sk0A?gMx= zd>=tStwl5O7dz%zJ&!ycRj+4cXOmMsQ!m#U-2FMu&_Rgg+or?HQw2`G*YD#J#7nqu zGZ;O8f9KNdc zLA?J8sfA#=iCDwlGi#LCdHAz6bGm5|<_H&`RHj9}RKcxasY`g&sF22?Ap5bpKlGTE z2m7z2vguZeI5mQQjX+Uxi@H1X-H?m9t0tU@l~=x-Sfeo|w%GM_8rZA}Ae0wQ&*#&=B$~G=`C2 zUfz!W@N&4@z2tcLHG#NF3oNALVOsEDw{gVIxV?Pfz*D!hV~=zD@=imd)N`l>z0B7c z`n8gDED`~(c|tlaga-qs0Qq7f{3uDhS1(YW$@f9t9r7EqD&qFxDM8uE{nN8W3CB@S zj+(s}l1giL%lE7(&0@cY?Fj3hs{a_fy|tLW&KwiRF0;*H+)He%viN%kqavqMq{D?Y zuJUIs5Exm>ZVcyhPAW*hrsULazw_$2iImgcF6IXOR{Gu7#Edo~_S3BK*TvZ-!}-z_ z0@LjTDLY3@_vo|+SrjYI?W#?0z>0qgQrcB!#Nzgf==4-Zvh}@qJ0*12eT^bkrt6Vh zv*``)Sn6i!8NK^!%~h`3f0?(qxPw{G7yr{$#tZyP4dnLM}y_#_FdsAc`(%z5l7gVRmn% zKuxgjhGyR_nc)s%Csyg5cXA<%wfDJpinn^m>KPplKKFEBO1@Hu%1B@Bk@*NM900-W~DcD3fPin zo}dK!Y0Wfy?ZTGQsf*r3Swu5u#vYzO= z51%mnhIHYY-$!Q&oi{)mX{UFBEXUO+%+XUGCz4QJ53JhaV(OWyOT)Y`9#>BFm^eq9 zHHi^?s=)&>O8dy3s?#Tj)98HQJ1TNxaGbYjMi|A*gKMy-7y?BB?NsylULxDxgZS@HyB0=F5xrKY~U_HetE z@+R%}DeQU3!rx z5=qpTS>0{ZUH}M_LiLC?=^;L1doHk^-!R5*Gve{F&CxD|Opo~!6*-q+$H2pZ`ZE3w zooYbeoa0!@L&z8AAFa}uBmNbn&2(+0Y-y@GH@=>{`Kq4%7JipLGJ)W$@7cSxXk2gL zK5osq9iZn}kuf9mWF(>9@b0vZLZRwW;f`J0ngQ?A_SbWG#+ET3xA?>8T^S-gO!pQt ztM)E>2C-#6H5eBHA-+bjQaI5RY^gDudH9$w`Z0S)Dc??tyYYu^Wa1kgU=8S@m3fnd zeD&rcj1~hm_oP>P37CF*H63`XK->npzlba9X*Je}(hu(>5?;h| zQoBTsv$aWmHqx)R^+Soolls3@ASW{2iao@Re($l!z7E+U6?!DC!Zw>AkS<1!qRBC{`|dmZ*C8aAi7Yda90IbP+u*B;Inl&7&Q;@;~4&oDpx57DXq&O2Ax za^Nnb8rq6Png4tS{ry#A;f&we4lh3+S!|PoZ90=C=I1{j{rQ!9*0NAagfss0|NCQn1z$OZ zjQ(geoUND8{O`HxL(dHf+<<#Cb0Zh$*?-=g>MZ)Hyy2Ixew}|v;)C6LN1o-tNN^F7 zd+qO;{c{tfTIgHE9ra{yL^nUezU03CpNIVCU!2Y5qZh4g2@16CE#21~k^lUk7mkYlSuj$tT#Y5fP6~6_vfh8L30XfYuwFoj*{GbmKD-zC zxo*bqJPF9rwq5|P&hiH!x4N_Hr*`;`8j4i+NxEi)Ofl&vb~ z)@%0wx?FiR71J5s@LMQOG_9{6^*f#zY@I+scB%M3;$>Am?3)>{qJ5)44 zCQ0Xk@?o{bc1`6nQ1b6$8k)#aD`=jBC}fQa~X&!naM>U@VcFb(isQosW?OCJ8z zm~Lac0Q^woL-&7R9To3&Q9yB=D%*TN&UNMWbgi&dqdPE0`r^g zkI$4}Gj&FwA77nz8ZFXM&G;Sv6a*f@??Q^%;n~x*UMY$^mCc3%zbSh}O)-Zs_=KW$`-m<|1$!k0ucpOaH%aLb^4!45LQ4CeS5sE! z@4aXiK@AEekZd#pqT{u5d2H4(2MjLAQNBx*+Q~q1Ipscy)R0fvIp<)Bx#Gdjt6vhC zJmpr?jgwv*h4%t={-#0cG^xmJxenI(dIwTcc`0;iad$^BN|4WwGxy2Si8|Oh0BgF+ zpFp@d30O_2HSSE74cd*De!l=LPZ5uz1vPm_^QxCyw=yDABrTih>6-__%8tRU9aUZzmk94RDwqK=?3I0~Y~JP!#a-gxi>03a}bJ*Bz!6s=IYug4xD> z7`Guh^qM~us9?lXI7V|VwODY_H;O$oJ5?I+5U0RQf> z&NNy4{%az-WWY_=AJ~z}s0Z|@2b@yoU$x4TD}liuIi#-JN(aSMwt3{~_3!p5TlMEi zBMxEY*o{pzto6c2G{2oF)z!e%al`JL25P&NLVk@N(8Z%Gj@(p})(Bco8SrM=#&a2% zIDX#)GR7i+Fhr_awO#qrViWSGJ3>R>WG(wK@%vIW>uKqnGWRuau#SBhY4U-&|6bE27W|Ho`EtY9?@?*qYF(C=~ zgyOSLWZyN`ZEGZU`l4N*zGLz@Poz&7k{(Vc+F`!;(tqSneR}Ysgw$iJq?1Rm*6S$x z9219_4|s2@8|&2N!pzIjkM#vS!|BCtpcQO2Ug~gjjNUtb_WOMDtk!*!5(37Wi5e(t<=#QVCEhm4LQz z@B~vS0%`UBqs4eB1F5vtE(_A{^320WIa$cTWV>R4_y8!dcFwC)ap&AT4zE?AN-U{x z0lL;}4}{e^ri<^(>$2cq;t*7Pn6=043r9V)R1K1)!1(zWVEcj1bjgq&C8b#DKa82( zPFd3*g~PB9bg&bJRf?P)b0zD6+^+c+^vnV9k#2WZJ$;rZeNKA-d^t|^uJEZ>`Vqs`y?Q7-uZJi$#l-umPc|a zTQUCHA*Sr6mz4jJDmdnlZuW%jGv~Nb?hE%Lb;@4EIW6X@d~nbz(xa^pr}Vt4ImHk! zo@RcgG3>r&xRpVa%O7c+SN>2QorB7H>t*!sbLR{F4s4~~ zHyOe?_~Ca@lmpc&JNiW@TxHN*0zOw?BxXFc+e2{eheSyHymkY0N#|j$md_+@64s*}fF6?*mh@!2Gpj@VMZGoYj6>0^57LN9L2x{B19Ba8J1AK%J z%Ihz=6WExXBHXEKVjyRp@gHX2n4#d%Wzc1zP!V4JNU~El7bdG#04$rry~G*xwW*78l#su45vgV&woTXK*WaIt+5riKdZ_%&ZWE7Bhm%9}x5 zU039l^psu93?`0yn8Ky{z)5=)sU0CtL7!<;X)vL{78skV$ZG3VWl(LTGgmM4XPozpq;m3rlKwPGRq2b=j z1l+p$E6RDT_oXzUpbbV@U$)WRaydYb1```iY_K?p?|#wqK_I&`u|MmVPICvGK#zil zRTuSE<`@{$y$MdGrNkkSV{p}%oFDGzBs8Jv3X1zZEFs;I{}=Vk3V^5vFzO2YHs5=1 z-o8dcPr#8y-Tw1**VRkU|T%yER2aI-&xo_8S zWM;H>A(+C=PYx`)p9Wu}Tx9{R|cH%Z)1TugzQHCe3)?Z>HeK)qW}el?#}F%+H&xgazvBey4-d~*^2K-T3%my-iurp z6hdbs^6kC}dGr~Zn&6z>jJ&Jvs?4ye$Vr@c)*`pS&y0oy~8QK!6P= z11p44ar-`rjM;9kgTLn+ayBJUvL;M5vtox>@NzGWnnuPwb>*sPV;8;ZbEbTQkdmr- zfkL{kC{6Ou$CDvuz|pDC!~BLM&I0uM;IN#xXBDRjnoc^S>CW%Z;rCF|NT?wUb{lAu zjA#(lXT?epkKR`|xzHEXGul|h7AH%2kf!<*%aeMQlu4}WV0*a3IP`58>%`L`^>{pY z_rmIhK+08>iiZz$oajmkxT&ttom!IZLbmA(q6U9qU%-laYy2!kJie-?-FljQy<>oh z3PiQuvcrcZ|7NNK1Ao%w2fX~)u}wXVJ;0^vP0R2Gck{3wL@-{DD!dWKEXiu|^bqg* zJ5VX3N5xW}^zP0%i-y*_G;bJ9IG_%I$u)8}EOTu|UTz#tL8=im$rlwvT!nI)LSHNJi^R=qO-TfgTk=!(|uILMUy@0M@Ylp{iYEqRa zb=~39DQT3onGZ_!?*wgeT_7?yb!1}zjfOsgz}uj5xKhy)Y2HaC<}S+f*&z2@ft*6< z$$6ysOB37cpEapxeJxugG`yyYtyOubUYD@Y-g$b7bBM_yETa7XN0rzAMD}fpO8zSd zKi#arKgv{QHNz%Z%DeBe-r-)p>ZwRG%aqwoIy zMZ;;6Ngr?pZKq5SX_}w*^F9Cm(g%Utucgl`JngGgkmpta3!IOhn%23EiIZIo*7sY@R5cdo);6<5qTAiP(POA)e<4%3?ffB z32-Stk!5dw-_JPy_rUv4R79o}z#JnTlXdsK=akMhpVhR@KE_tLWjA{O)Rxb&J6~>1 zy7YGIM$uF+tT;{{%KOb!oOc25+;mPNk$qUX>TR*#X{gXCNhIs=){S_dyTdxOwE;`x z`_l%*zC$GwX_B69fv<_ov>MLsAW|r%hF;05o+iA&cbWHJCnI~rIs4kA9C&!|{=)F& z3A4V`w<*a;2(HCTq1I(SBgCNMHRRgBsHq;QIz`5^xvQdWhQAXR2c-zxYVjnz7pbex z*DR?rZvrT5R_v6tO60!?PUuH8v;-X`0Eh<{O`4SLx1o`YmM|w&TO>Vi-M8Yr*SbCm z0SU3S&82o@>iPt?CUo$5c_12-^o@a*#o3&q7YjIp-|U}P3OUWn9?UE9wmRNtOA<59 zu~WL<%(gR{nT19Qf?5X=YE5^IBy7ft9h!cX&$>@vc<%W)W2`cX*dHJ6x zC3PdJm*nm#8ieSwVe!LcEJD(}Y@fZ6daWCG{2k{afw&UrgEh}U!5b(yI-=!hkQ8nS zI`lZ4lD5=33TLQ5e)m)j7q0zD`4!a<83PC&|CVgSwLWPPqTV?~@am z#wRN>=+ViZMZ?X2mu|o;q;A-88<`jjsBGJ~x~MnLA9HP>IotMnw#vz zQP}{WA(u!wT&9<^DG6M<>XXJVh*)Z^_CD%+-in~KwQjBIIoNxE=^NaD<=J$fIAFT( z180SID!=b*uJM*1OTe|DJEuD(=qNy&BslkYp`6+^h=QCbUIS? zY5@!@%QrC#Fdg&N&@j=SkRO#phVI$hqkwje#kR#8xgDP*jtKF?fF`F_N1nbFH{al zZB<2npiDk5;`Q>oNvJdH>o`>UVOsU<|V+wWHuLst)7enxOZtPzmct+}?>k)-?Zu=O=&XeHd)ZeHg@}Q*T3GQvRBE zih$bY7c7YIP%R;5yIS`oOf-3EvtFa!u1z>pM4#@H{5nJSO2-IYq?5UF50*^)L{ylL zg=|Fr+T)AX_FB+wV{}i|>2%+kWJ^&C_N*hiFTK0j_&(`f1}&6+T1vnQmVpJoI*Ex~ zpm(f<9sTr-E!kPCu|E5I+uB_j{2P&%*~IqD9h8}2|HP*L&wQcbafIdH5twMw!mt|m zruR23+x34pJv6Lw^#DDqzj5v^7GeitI8LM-r9dhE^Pr`+)x4Bq$Ww4c0(TZz;{NgHzTPruEo|DUQ% zfG{Zz!t^mn8C@qoGNtPEFdjLb&IXeB91E(Uh>bxlAb&k-`d{GkPvPOj022n0peHX$ zG8J!BUIK)ZF3Ri-jH945WdcA$(B%Ia@bAX@=P<3uQHQ#@smK6}vx}R#6=%cG9hXW< zs6nX{F_^D6sxib+Tlk;DFDpzsB6|mA`1u)!MupRy$BC=5^sfsSB+yd`x{XbX$ikai z6Ur3-|EfUG=oGL=i;GOndmrqgfQwsvP~NrCm;KiFg8P{Ncd&$`t|5$o|K2jd*=_e9 zU~FFjKz|vyU?^5RSA}|GgcwYT-x|Wd{GUQs)C0_Xh_~VSP2N1XR6j{IkN8t{w!`@U zd0=!&sLDC|IrC5be{+K0H(<<*Ub#RfLhDUI13@t+s^*J}S=DiYhgHhMhGd(S23 zKZoVd#h?)NfY{p^Y4rYM%T+>mmD3`byv2d@8P|WUuh0IH=y2QzvKb7rcD2JFX8*=D z=z`qE>3>&-0ysWPq+OlL6xhY?z7Ju3-^TU)TUQsT&8je?H6!Rn)Kwp=V1hQm4`KkR z>H@wXrn|N&++w>Z%;Va-xMku(1zndytV*M>+?CDl$p0t`0ub!PE`j?N8f{37#qgr-)ZBKh@+@jQoHU zZ2L1_j+RT;Geq9jgSQ2n6y=nNbJOS=H%olBN6>TWy~mppNlLlJin-5#tui0AzLUS_ zZUb(2Y`(_8n>#Rc;K@_9`WN)o(`1pyboJITIXU{3FUXhQ%QN$X`iByopJT1(V7O=! zy5uukev}bNOb$8NV`om$HuP)hGUA)LIIjQIeNcdudj!C_ZeR*$^_H5`0YWbG>jF7e z=UWXFDdf8}RAl0QCRwIBzpgwls_q709K#Ib4!}Y9(8iNV;`X1>+A7hlk?PBNo-*rs zSxPajPrHD5#vM#nfor>H1Kut)w&4vNdxdt^;?s`Bt!6VmS)WZY2zjXb9HVM5Hq|%)Q<{>t{jQFA3Ix0{<{oB*|iNK z+0{B3gm-|b0)MUdaRlb0jy5k0lscZ`a(H8Rzy>(eHo%{INa(LHgPU#b1b zun$;~zuwy}o4^NVCEYhLR%$;-{d}{K3Vc9fN3P6L*36_;RL-{di`%`Qo*$_RX zML6&!5-v2VudCb~=v>rok|z`eZJKtCE@4#MHaW^kci=EU7qI~KMhjr!is4Z_Ty8s} zEG}M<)}1WcY0e+6w|v_Zm!&(EUt{%ppL_dxienuIWG_}jnV)goowSo*Yvy%0-8F+I zZl4@;OFmVQ8;Itk4uGfueU4S}Q8nf?I3{ey`kw;)-(2+q6-bf@+EtT**|grYgeob1^MpS^ndL7eBRI(7X3<_aI-U0V5w7sA znj7faSdx_Yw^M-iVebkk4gff~i3?{Z)_+mEx;`3lq>{7K4R#L8Bzzj6)c`|0xI$Fb zo{fLmzuZkLv-$DlX8=#Wi{TxHsxN<+$>swYQ+Ol1uOS5K)mNkLZD;xPMoOPq4c5PU z#X&NBNNv<1rE?ITh)W#js!;277`^#(a|~$H4yQN_6R!25#Sq>zJH6983JN*BfDcM} z58Guv45t&m;~#&W5+ToV4t8T}fJ^d-8CKcl_r0zetKWainN94%s7E$eKu9Olp6b5s zscxB3>A9vpREZW3D2If8)z5y>XgAh~O+d6^!Uu8P8W$dMS1(mi6SN*+%^y^Z=izr* z=_!khHyt{r%I?wntn*#SZd7%@zfy7KZp(LzC^?5;-e;XERQXa>XKLPx5#^c{-9om* zNP9)4H$wjqRKs%RmNlyZzkV|D{wGJIfhRoS6Ns`BB+#a9O?WS7J5ym#)GYfL)S65&sG4dK0?A!g1J<)NC;S zZx;52nS}+wdS3MWwF$7u@28{1rri{_=?FFQ2-S!Trdr^%caOJNG^?&W@8vh|^6h)( zV+dH_+Ei|Nw^rkOsDKdlcnQ!KV4XD0*$Oz|jcS+xj@CRcF>Jj7C4g1`7Mw9{v89TJ zidgVu<*w(x*+E|u3ESe-j(kqb=iSslxY1yP@OmR?N7u$u0P$e9$P00^5>^D5) zyl1#7#5JSK(|U!aW|El0AZGH3%c=S1QsTn!k$hA3Cc#~=ex!D9kiZzXqk8KJfsmsmv7usReH;#R)P8U*%KZ7Pb^${I*_-?lnjf`9m?Q9_^`KEgRlEqyA zA!vD&WttmN;*rF++O)r1ZZ}50s@uZjcC7y9BYL^TH{b*kkEdij+}nnT={`4p8INyl znb9F32>{BH_EhX;t|Q<5e0KBqp0^-%pwwCtn%H1J<@J(cTq8w0qVyDC+wp#}b^g0G zxre+(31tEfI>(ZO(p)wYbIT3smLFZ{-5tfiN(1~Wi8PC{EA6jT&nIaPlt@|8?&J4g z6F*LDEQ2L=n0aw4KwuttyLy}KPgBj5LEHyQm@QB;zx{nqep~f-GOLtSBqkiC`er-6 zkWo!-1Ga=(2SzBTBnivYo15&bn6)gF4qu`m4p3Lu=;4mn?pPj8av0QQ&I_%36Mk^U zzTS`A;?m;rb(d$?j_)#kUkMr`EZEy_d?HHYn%oeGo5CpJ-fr$rW;^0wfIU<_CuRx3 zdWvm5QkTZ{xp}#}-squbr75SshgWJ7~?$cy6=FPig>Nv*+NYzO3d-9>0#H35Z zH*lEXtOdICqOGeUQdb!hvxSQ_2R(`q&FK(|9e+)+VW0Jt4oyxryed|iP=e2k0S6&1 zsMttqLb>s>U>kYst#M_&PA`My6mxCFfFY-r)^($h&p)EgWFI2 z?p3>is_r#|j#}nylCS~g3Qwor!Tw5mM@Ml`m;-%-h}F_4jH3cyOkjQ-t}|h^igsOI z3q>fI_!j_O#mSDfHtg0${Cbjxh354(ErOM*2XDxifn-+XbD5-h^Uouc1f!LYaKE{2 z>19$I>*59>PY60G=i6HB`~O--idkUG&#sxAwv2o3KW6WA;nrEHD=+T0MJYEq9K6lN zqf))0(+;JCXmLqt)xgtq@pIlKWy(?uZOdtir{L@mDBfK%%N%)^B-jOB(_7`mLc%tq z3Ra9do~ta66a29QiRN*1jpz0nR}R(h%syPeAd>2h;GQSEsq_nTK!-*9t6?qbwia_& zN0c_FQVaax`{yP?HPpb@0g;+k3c7 z-(=$BOyVj*4hJWK(JkTq!^wl*B=;H5k?S0K&Ce>z0*VPl=fsf4qfY?9?;6dR1S=7= zF7Q@Zq8m(!&n`u^pFK{l=AhF!%aOT6>hxy2wk)_V~&Vsy|f;Zha zF*nh*8Wo)9H2%?##b@7-$yh1j35i&==;XZu)T=O9&ZOqjqM>SSOp5fY#5q%cu`N*{ zrgxNvFjQl~?WHE!dlCTzPf!vL9JCqz(`S{Ch=GuY*6cOrhnPz5(qMBBlnlG0{uy06zT7^}c+v;$%d0ZsAkd!}girZ8R57^S#&>e;6656LQv_vCwvP@E2ZIUMQVl()s{p|=Z|YKv zJ>0qDB%>3@?NxZXJSFQ=KEF6HMF zXCV!ILxW+G?w;Wb%}InM^Euz+aZgp7c|Ig=YuV0s!bh>eUeFE0A^R;g(G(z$L#R4| z2ms4gZ!&INXtQ5^JF(wCg5pu0Ed{$$tXD9<^>G=WxBl*MmN zS5oo3h3m`VHbvR**ZkC_w`qM6%wig7`XDwgcb#KEV}!jO?(kqb(%7y5*(MCp>;5~J zK=-uc6a~fX26Q`KDl@7h*xJu)@uoS~=b9;cm%^T-dTt4+l3WDgP}tUv92eTEHE=U% znSJexlKE-egOOQFi7<^be;+47PuhA7%PC#PvChdT5Jzvd$?cQQbmk~aAE92k4L1;+ znZ=xX+iCuix@GKqjcG5irz%KA`t*UUp6Z1eoKc+k5CXX`M&rX5l@&<5pVx3*DuX@l zi-HU)g4u5J_(l?%eijjZ47SqN$|1k)JB3$3m=3%{KQALZ6dDRYxi@^GAI5NlbHtM6 z@f$X9v&ZW};;K=CHe4jF_K4;*+&uq7m77}9m9z}>Kn#* zg1d3gCD?y$(#&(-(6ZyG5w=c_J=kv(m9+Rt(}dw-hC)I8ZBtlfH&t|Y@t&?t9`wXn zG5hVp7)U2v?+zEJ4I&)y8`POB$YgLhE=q68U1xI7u~}??Ux)nIXP7}Da1t=koXo{) z!%UT(7Dae+f&azjL!Ngx+rLC{N`&PSrg2rIwand2r{usO11abmu6xA?JTSi^X?qMM6Wu1wqU2@E(P0;nw%{d^W!C{s*5GFVRM4fQ>qMF>^Cpv z+D$xA%;aU8a=r6ait_$%Q5oU|vOk~&_meOe1?h2uxswp1R7QuTm7ChASuEHvG%S9^ z+zcc?hZ5$){sIGjYL7&y=0p1zQ<1%71cLVQaV!wK9hWY}U5~>b+9^C~)e8Hiv=ily z2?u7cxPusx4KbrH@^r$Ix<(c4!*M_Ph7iC1fSUD0o_p@F1&+qEk9 z%S+`muJNp_K;H0RmVyeO=4VAGlRXhFo?HX>8-YkxOWWt>h)^xNI)l#Q+7+f_N)$1h z=~cjKi3Tf@tRmKwFARH6d zG)T=Q82NGRWyOm@?Nf7*-=?PUf^{!9($jNXB-u{ZrNJM+ws zms_r0cVH6X_I34C#N1j@jo7?2lP9F_8`$*;9wD8i0IW!M`#O1)L*N;aSvbLT^;yfw z4$mv;`VFpAGe-=!H)VkYb)Mq_IH2S1liMY9cG!TA3o7|a02;ZH?p@?@WP-_SvFIUk zIwym3jg`>YeNE!7q;Y@V2Sh(*{3DCJ@;c-X-cWr`-H)HTPUc!Vyr|y(nFN94H$8y^ z9bY&8^boX(IWYccOpiN@NFbyu0X>I_w1O5vemT|O6$D1ySy%N$NB1IroGDyKInZ-T zlA}ThqkW->rgO6|E;%u4eL6#raGM&93Y`6nCk-~~pSkTEt_y!Au$ryfFzgvH*%U5# z28O9fJ*W%0SCc|BhVTe$U}L#w*~?QR=U2J6 z(ety~9rp2o+tsMoqB>{M8}7#K$$VsxiI)tXaV32uA5F;)$L|9_xv!@3fOTh+j)1LQ zB_l~r@E+t9SHOdh@do637qA<`RL-oSBF0&OG2muFy6ZJE<^K3*o_V>aQzS%oIHB(m z#`x?I?hi3hrWKvG)A%Gt6I2(=ODU&3>7{{uOeyrOI#U)VmdUvc=AYXxoF% zNDIbni(eC!MEcdtAnwhy9gs~Nnf;lQ{genWC+$06P7a`mFTqk0KbRcEwMNY(t?E-N z90=!38#@WfM^YYTwT91MwB80f1)N%b8(RFUW8M}>H)H`k7>L~gMQIP#QmBF*_9j0eFRa0`e+{`Wq_qVu!v$7bI zL!$l5nI!sNZ_q*|z&D>Fc3yxqKXL<|as#{-r8h^cVmlg@>jgXq%&e)^`#)riMI8ZN zA-&CV@V5Y8tf)L+omjWVFSh3r1wHmBwR-^RV}?|}7)2g%%r?<;MoVZ?FMoH9;M_L4 zF<9m|{a{jvD>7LbNAc6v&yNtdf&jFVwVfn+sd1bn&`tdA^EP)OWQyBSoWV^z&gO@U zzU;Wrtna);8ZqA9LEh|(QQgoZz}TNy&5RsAkDPLjepsNhm$+}aF2mcLz0I0}Q|`BA z5RrTCLnV4Y^4{zR3_P7Eg_VsJw|-?!_U8+;JUJGxO+h&#x~_VIwXSH-bBo=swCOJc zUdS6X$jSa;6Bh*+r}b?*)M-@0hGV|bb9>x;df&@q74ob*nen+3^?`Ys5?ZAS9)~^Q zd$!C)$U1e~-2EW4&+ww($aSgaOy) zVpI_C-k+8KoN32VRuYNX}+=I zgjo&;*Kx1bp080I9y0-wDb;)v>&Kdu-(snu_ zYYfh{ITtyNjZeP;Q%H5-k??_>jm4Ba|1f2<6ezPH)mdDf$o$-3Vf+u*{Zj^W|rYZU>dQD@_%|LgzgleE4W7eeWcPybM?QyZV zI~Q7s8>E-iGkp7E_wjuLV`@k`EU8NbEK=>>!gG<-Ia~bX6qIc|`0o&tM$C&WrMq-k zu%QTuRM~cB9RDQ5^ri*O%T^Z6G2L`wVzYYNE>zn+{duBgh#bhE)TIn1r7yp2wX=Oo zyt7b`B3!@o2|kT;D;-CQ+B8tx)cJHJL};|%+}w^U|8=Mk;o=%wWRnDiW{>KcFj@y2 z)|c>PHXc`W!@bius}=6i!MdySp6SH*5Ts0%?=jXrff_Ifb>?ER%#YUSFa-*oEp(=i z0(-X?9$F%5J!Jh3nP>eP9DwRO|LVH@w73nOnNYyUf6bMp-y`d|Y9UZyH&ih=cdI27 z6aOND%5G+ds_7mtOb}vFNmT+Ki&+x9ZHp9>({NpF&Hhh&3?eTrev;U#DW9}c;4IeJ zbz9!SS9K-1n(ZP|uo|t3?Cfe?Z4vOkG{r=2rd8oBECcb?4z0R*20MGO1FU7{?jtqK z$+YHBmza`}smb3k}VR|ic7pqg-S?3SIl(dIfjYEvk!guG~ zE2d`C`nD)y|L`_(P(LW(7Vsy{$J3?*CB12^v`eiVNN<0W_y>O{<)9D?_$C2oVwjJc zAuSJC(To@|YbTIbxr15We<&YhA966EVT=hUg0yHXoiAZFAsxdqvrsQqXsE_d>sqN5 z19Xzrdu^DIyFxXD>E4Ayz)RvL74KTJ$E!2S@@q?F+>6s8ZEk87doD4F=$ z3I{g<{W98b>;jsi#V`q-*rPH63Z=UiyoCW50W*bZMMHDK{hcP$3lrg+^lkZ3nT|!* zOA*u0Q(sm#ZG(y(cb(`4nx@UDS=DY5H%K&{fs|zWH^DcY{Y@8*pibI(|I0nl34`ai zwv<}u#U!oXrE-JY6|uq(^5eb7zK#;~H!iS(ZYk?cK?H)trsw8+uRjn5pig~vW8<&% z%SoVM{;E&+WA2;XYy;=x3ad*BE3V>Fcej9tM-O=)AB>{gkzzER8{iTO7&`Uv;Dw1Z z_|Fa^!&-PVvINs96H1qhv?TsI3emGwNQcC**{D2l4P-I^VY6SwSCmJOwVk(k$iFLR ziW)<6yZ9|Ma_(6CzYu$ie}MPr`d)^&q?zCvfSE$vk5o)iZdE1gmaILAw#GkN1}Byw z%)7TId2OP>H0i*se!)H%KBzJ-RMi0ya9iAZ1)8QC4}Iv-#(hT0cl8na2kf;(tNlrv zu+tHuh?*;I!*TCB?w`YSxSu@+w8!-14zMtK$gwnJyf(3z@oQ6huhGV>Fksv1O_R`> zVeSz=q5Wx^qy>X!wg>0Bqua&0ijt%+mO{WX`Yl@(8NyWsUBs#&2*yf}PMttyHii}S zFEgC=bx=hxK*ysp24L)k-Pc%@yN~Rpw~a#Ha&S@mCQ%6pvPhvgOt=tyE`Q#St~(QN z&N&t_<9?M-IX4nSLW0mFer<9R7(fwNE9%WxOURnt-0E%6!t+tdX6XeK*C8vH-G~NL z^d-hIJfG7y+l%$k=+tSS!b$^J@^UpSobXs=G5_NG7;#!k-)Z$rU+9>psSMX0vch-2 zGB|(aUW##m(;)2{ZbrSzsQyF6vkt!iv4V9A*FU2<9C53NReY8h9>+Y#Mz_^&gZdsq zlbb<+nBu3`yTqzr3^ZJ!!)ExlVUh<97<$mg36= zMSs6hPunF53@WVFtJyMr7C5b%z#?hxBbUu#0&5}6Z~`$nO=SUM(a#D`n|hrfZz`;& z+x7HLOi~f&Nc%i(r=2*3-+aw&eNFETD|lXFP+VhgmTLPA&Mq;XJ4W!P>WuIhFdz>? zIWbO0E~xWi-6~tL(8uM``w`Q_PbC#;pDh7l21 zOrUD(d2`3c4f_?wi=|WC#6pA8cgZ*?EXf&hmyqD$Q@OR)6kMn%7ookia>e?ALFxzb zKv$W(_!p#P`&i~xNaMz1PYNVmVWfqTP+&Dv6XhAy4A)v!S$qLsgj(Z_&#FG`MP9tp zAS>XpAFhKZoUE|A&n1JwjkAF``qKPiQ6<`G>JC7;%{m^k=7V}~oF1pD;LhRWN`HzU z$Yj+Vk{v9W6u}y@GoF{M6HMHe8_CX`OkUNF%SvO9^j}lz=r!5a`vymoqp!iaE(|b~ zT{?p*U8|AFP)_eb&mwHwoqCr80Lz3^edvW7CwadZM;L^fWNv=_#D`I6jCtK(_JWPq zF`LRH))Mg{O;Cv2j1Qx&y}OBWH^JU`8E-iGfS~mgc3QeamPDM+!$r`Q)>=HbO4?pTfdd%Mc$;RYP|kSO+Jl$;a`5$H;*P8v zCnR1Q-FbB7k!d>`;u<89zPVl{sw0ww${|rHJq*QS)Y@ z!XKOlm{<}1f#qev+`;MrvT#JvO@P&(DwUA`lGJE2$p!U{1M9#q<63VW|1W|sHuVmQ zi){3qjU#nLGwK7WTn_9Srp@=KHO^K}>t@MlT45&rc~L8KrwK~^yiYSS{-Pa?3X$m?~OIyjND_@8NLFY_D_%vRhaNPlV0f6tu6ae`A+DgNO`IqJ-yK!YHjejBdW^Zr!Y%1KV;IW1J z@AR19v>X=WORl!<{J8S=d-!Ja$aoyj?s|yl^0&b4bPJBK9?!vO)O)&U0JuX7f8fkc z)nT;S{t)JiS+A9&)soAs-?Dj z+HIQk?QW5~h0HGJR($SgDx_~8y+iB-G+gljMv3Bc&~S7WnCG&+^`)0rG7Ky6asA~H zFNiVZn0>`D-}hX&0`#MzprqitlC8$uo0YZPXx_%Fi->c8?9!0QIsbI* z?Tdr4G{K#!miP9}sDoMuurTAZo|~*()+a27cTMrW_+jLZ;nkm4^jAJPJ_i&SBJHs= zx7V|`^6!zUy!(X?*6tq&K7bWiu5sCXht5{le~(Rbs()>8?$vC=w9vu#`zwVXGtu5W z9E%aycrcXbfbRs7j6aNmBDj<8q^YgApxDA zh2nOU`DR`ae@J4{9wc|}7mw?R5j`KT0|jMskY$xeey%=?-BSg-TVA8AOKq~GCzB$BClUuyb=F^%NXvYRbc=iCt} z{HFoz$4njM2Js81x_U9^ntr-yKOMNuu=lUDt*@z`B%90wG$0COh(@xO=(9ej`dn@^ zdWQfs$53MMhUmUFm%<-4P2yROOtdi2YhC)ZC>W!h- zH4hg+%^ZR~&e+pfFR$wbUOmlE?-twige%|gc37aN>ttf(zKu`J8w$X;X3{Hss&_fw zbpNqQ=OBH+>EUK5oa^n)E+9aOIZ_xcHO#~jg#u!qnf0T7No*dU%Of6(3=eZXanYNj zT>i7HAVha3T*WQG<<*8{NG(;n&9p1GFGk~;*i zPvm~ghJFd8-v&tWZ=yYb=foyoDSZL`qATH%spshqg`WsKBFixFhzBBoLg5f7y|oW5 zzBn&m4h@hI;52Q=fSu>gGH+HC_n@&lnwxtuI{sakE}K)g5~FH;DUd6^z{m+OXj+Yva($ zhDmnu4kZxaG%d-;FT(RiqTn+sV|YqUjvX!tu4b?81foB}S?v0dY(Sb>ma9K8-gpUFmcx~|vjZ5jfDA}rOZmObR0PMn@co!9(GSd96#@{{Y zct>Nv=W}tgkEDE-{(SpOn&tQfC4t~x_x@sg8fZ7HjyV-J1at}+SaCj7aZu^sWJDR{ zmC=af%`@3P$YtiR&Q$JuuwQ^6R2dSCdzmJ;^`uhMDd=c3()sq1iMnmnx`@`aBa){r zf`|wmiLisnz+K!QlQ2Wjwy|ZnNLvG@_Yd`h&G15ZWzOd;I~prB zobAV@{s){XM9Ikg{f?-C$;lFpd&92bJl}s&LxsOhjdu{bFbz?c%w8Wy_zu9e%iL=x z?`GesAZ&^@H5y!dI>h?7IZpX3zA*Ct;CztKi8O~^(DE?6tr1XY#L;PNuufbUjht53jTcu6V0^$)Vtd8}BMar9x)ZNJVP4MdrO!(mwmCD&qm4Cvj;e6ZV* zACy?DJ7&8tJ`V_1xM&4a-O{?a zLtDCJSedWgH^?5i6Q$Ez5t%RQALq79GNoz#fr)bX=7V>?*z=Mn{Lml0a=t)-YOsp+ z4>puWfbh+HOK94VilDM3EB8!Em1cT|u-7}jSRk+T2xb3kb=S&xT0Nks*^}LYgS@1zE=sSaviG*El8Nk9~2UoCR{c~-$oD4#9a8wA#akvlO6eg zu!066nvcMLc3f{3;VO+*-;@FBlrNg(krie8j=nJ~>E201JUZSSQxyyJn)UJp7|D0? z@eG|?5nqXS<(nv_chxr{E2q|P49eYK8$06E9L=uKUI|Cpv@0h>A`rpG_uG%PyKnHNUzi$zh}9aLBuh)c8(b{c7A zr%M63&$NgWdmu-VhPuf3eXG4@b+i*BG0pwMn?xm$)m(nE`Y638iB)&%r^J_vr|EYh zce2k#-`N8ZEDOy5fk5$yi?t8mtFIZk>M>;Wv;hf9LX;~>5cW|Y_}cGU+VU$PtJ0TS zDscEDv8mP{RxSNFrrSW2P>XS(wJ{z-h(bC{%459*2gA$SnESKZbQ($;2@|?w z=-X%yjmJcog2mJv2aU_}-j~QVZ2(?Ln?==>@fuPuwB zgNj0aE-GNk6154vL^m#J(z_l-C?}qFr#?JQlZN!6dF8#u{*uD4Fg-`2 zeQ-(s1Xn(0W|a~1{Zf9KT_r0mnt%PXE={--%UqHdX;eh$R{#@nRtc~Fws4J!I z2s>g39qirnD>BP~}r5S6GPLQH!Qal=K$c_`XE|<}H za1Yh2u%w(#JN_%4b`Bn`G%nhhrgr($B-$Im*SO2!w8IZ-%d1md7U%Vuef1W-?^E4o z&U*#98c#hkPd(;s;VSXNCtbIHYPV}xS+gTyFM4_^vR^deVT}<-VsbJX22x;h5o-xy zlCSub2^n7@jO1>d+j86SonBY}_|T;*iQTsvMaK8zQ=ewxfw3regT1mwIRts}+~$$R z%Z*z7ZU05us$1Y!>0$8^abgED!betN8fu4!;!mbiH0YC3|h6|P~bI^hzU{Df_ zF7|SAnc#-(MYIu!AzkG1t`yABf zG>7{Q@MYUgdTAv9>#G6GMt)Myt^F1ut4=|{9KB+~)6=UR;abFI)RHFwGOyPszkVhy ziVF2SrJP>A=HEr88|T2G*b%I{HKqwIgR#XkEWT8D?c<~kuYcl}>D6_gHE>$R#|yNZ z3|9pK&|W9meZ4*}yX6DDkJAt5X1A^P_=|doQzDkM*{IK`ugtsO({Nez9(5b|@R9il zWd@l;qrI+yFOT0C`J@Oq-4ZS_HkdPZGfcCN0xCkTTCk(sV&@6hS)pICN>aZgCoLsB z$qE!E?z3>xexfnE{SujctO&C|Vx0{VQvH6uLJ3MK0FB-(@gC=Qh}+eL3Bq6PPR*?e zoL|IZwt0ycj2MiGclDL#i8GKcvu7^U;n9{9yNy=W@&uMGPt&;KHZTNzn3LuGno7%V zMv1`7pxYZ7KXT;Gq2}9J1_ROV1z31LqiwlY61%WP)RrW?K6Qnz1 z9U$=X=z(^%AnjJV) zq-5FmER65iYB4-q!awB_&(#11xl~a*-#392QNmivE_wKUoO6_3i&14fAI@FD@L5k2Gb9g64A*Xreg`=8yU6BD94TzitMfQy7VK4A@0$;#SvD zAfKW}(#d7)!my6x9;2et4(bL{cM!7<(>OH?>(siwB2eBAX<$q7d(yS`R$LN$6(&ep z0k;nlZ=M<#GQD#+p*LPJ>gGh5(ZysH24e5RRfHLMY~d@l@_odN^N>Y1G*@HPv97{}S{ZJ|NH4#53i+a#G z@GD{t!F2amyU)cYUZ>s{<$gEWl3{W6#77M)eF;Abu6?enS!hJ1EXAIpYMt*(40ZM% zi&NHg5yIgwpuxxPn>=_nXjUIM;?T2d9e3`svDl)Iu3su=uN?4!3_hl${zON-4|SZz z;{;>8n9RIU!!L;{SiEh{B#$A6TYcc|Fwu~x*61cFp({pF8&5krl?&_+M+1W3lnu4g zUR)T^bl$CJ)ct0w?t*kh={+ajH78NG1xZ(Nt@>Hag`;k79iS#IEVDZ{X6RQ;sz==F zyDNP9NqoWH$KN{a<1^(`ovhw0zGk6JINGB+-X$LTPyK2w{t`}sbF#@y8BB8a;$ksV zuj3h)-u)PpYY`;-1byvEWr*p3Q59w>q55t@?roe=M|GpfmCJ}$lhF%|a@iP^RzX_- zxtgp<6!oxz=K=W%J5F}zDQz|ik2qX6$)Zc6aEzioyeSDb zEgpl!px4%2pOW!Y+0U+q^nu;C7mFlsPy`FCXRc;lC@t%<2O^iOvd01`8s}%E&KoDL zqCVBGkw_KDO`o-7d1LhQF*;$FR3aJGx^6FJBU3%ujp;}e22wS7{C#4GwbQF#M9g(I zYiDN1EEFc^0f(rDIO|+9V5@hZU6>BPh_7IicfG2TjI!DzFWB64S1I~v^wG#IXU0RA z!5|i=Hr!;cwCl-kB#~LW5(&NPj?lw)UL*t>Qq(E4IlB#hYS|c^(`Ck@!;le7{VsFk zm>pdqo44NQ7K?mNZl6SrV_vxgl40r5?#=C4R1f_0x(xmtLwOVuibl$k(HV{HMQt{G zlYZlUrOvRuy34c$jLcF5C4p3PfV+4Q^6_`wzygVTgkRQLyNH{yAK?%eguv=%$k!f- zO=W-9Wvq3Pyd0rzBxKdqlFAi966w+3o(Zm}OnLJ_TG;bM%@%juP7Ezje+-?yMNFV? z4Fw|C%tjOiR05&4VYSl&x%a8WuPQupl*=8MRxaUk2o^@(Q*#ga2iH=pJn=UQ?ZVx; zt=*|pRCa_nd=cC^B+TpS$34fcMu2K7iGpaM5}pqS#ij{eQiN;Yg0>`bnk4%Yp?3NL30i5?@OgDeSNll7PV?oo zVn`?n>G2H1dyT*;cjP9RC9BtC^+71-;ck(YFI?;Qyfe}e1xdBo(NgiFUsK|v$a6p9 z(EMRzCJT=db#l4eXqf2J8Ao4!-Ld_!AIi#Or_M35uP3=1z&0juxDO#OFsi)t9_>)J z_8GhMy2OwYOu^)wIcO4?+O!Xm#(w^o0nL>W!3!hI<;V@+(wd0!G4UR1L~3Im74^!i z{_Uu+yh`MNOb6>{xc z<6OBuiohcb9>x;D%!>@Si`nth~b(X_>Z77aztBR|?k));d+gmCdUg(*Y2ac-`b}aIQG-*<6`QMkWS4Zn4Ah%b>Y}U@}-iTc63zAb5fH%8~jA zB-2~iYctTw`%?Gnka4_6*rS2gz{nO=3JU$&=D&=+;xpI#b4-Hzw7SvmXuGw4#?}l|`V?;~C?e8%C7N?O?(9#-KrI7t;joEoR;b*F568DfGSxFGMo$xZ>2bERyrN@?a?rDTo2tT6Uk;FcTs05)Nmlae zY^zq7 zQzci*$F9<;7TQN{LUYCwZ4uqGVhr{5tBk!=CKS`_I6v%z_C`J=YeFe4Nw(jxfo0Zn zPG(KQRl(drTS1r)ByPvihRD#u1@qCE&vex3eN>@z?Mw>Wsi)rH9WBVMDdWRHu+k58*;ax4n+NZft0~v;vekQ_mm*bZrg*;+WL_A zv}(}x)Ww7~`ZxWxrom=XSjo@VU%irc;E>hbcQzLD39gbv865fi{Bwq&)5I03t5z?~ zq?*W~JHg?NmP`zNNm;4E{lk-hnbj4aBgeZ4?HE(jd?{!mV?fv3)l|Y`?g^aYQF z&z2`2ev*Y>9_&oU7SyAk=Uiu<7s#@u$u9Gk3F6Q0K!OtYKkhgVqo>@(4%U~Fn1Mj< z15Q?^r+1<0sT*a$OXOkoBe`tyj0+f-PvGbsXu%QpQM_YzU-Fy`(aRE{)+~QW3v+Yr zvq`RXH6Wb%F*`Wh)i-vd74yi(8NYd!kS~wV`kgM$1xotI!!bhF$YCn}mw7s`2+aa& zTF=Vo))wau-!jA$ypE&3XY`?kP9=artDjvB)8QvB30%;~)v-d}GYGPd3~K|N%j5u{f?0EfFi7o z!VmKP{`|Z7Ne}!j)d~*@Ql6K2NVul4JB*5=>Z2Mqet;{1snMlMUVND5Q&@=xVZcU* z=e8~rn zs}y?Ld+)_0^atX{vpGU!f>b7(cT^#!y250|A490%8F51}Y{iL7VGTW5yE(L~WKStK zd|)cYj@H%;#C*K%G7AZ}tla$;s$4f}D;-Vs*(-v2$&@%wU`*$PI-ak;dVezVcL?!?xgGKn%dMJ4LtwI(iUl?7 z(8UATjrVG0s~!hOp>xyZpdzi(PQtZ{nDlua>hi576GAiIac;2dL)@WXTb@fuVb{5{ zXN?Q-C#G)(nXaE*-?TrN^PanXlU)3f0Fh09SUQ+TD)1Q11dUA(CHL(8{*O-~v+OXq z@VIZcMx$z6^o@z%5&>a9o|>K7F=B4BU`r{_s(}`T7Yp?8%nys+5Tisn;Afy7_a}!; zPia|>)I8&)vQJMI{q4Gg4xp7(qa52v0hh4YuBXTOS35aU(}+I@K}M z`hk(>hQ&o+3)oPW(cT6>{jo%gY|Y@EUQZ8B|7Oj>>IE?BO#QIC~r zUqxV2hlUqPJu{_9%59moau51NmytV*QN>aDeHaqK2F+AQH2%{BN|Pk|1Ch#=n^Qv}0L@jf&!QF#fFD6uaE|zb;@H$#enC|IAczWekB47$x!Bs( zkxh0=_C2mdPeu2#%~*q#9kn`$igl_4Hp5$G!*-J9!C*<22*oJ`_U!>S1el zQ?iKKl8i@77i-CVVVpopbuyfQ%Mqf>ZI|83DseksS4S^w-!=5(#p=b}W5_$G>>wAA ze3meLn`)I1c7kMj6vyrR?SbB=K=?N%Xp@hwka0-lB)RT(?>~1{``ksQl%{? zmhW#|E=ph2n*4A`3*uX1xONL(E5tiHPge6`SiZ$ z??gxfu0i;ajnvc<=A84MrJ+mkf@B|NoHovd)BGX*__46RsR=FF{j~y_?VDCQ`^Rir z^0?;+s8Pzp*j47)BFzHi-}4j-xWXeBm_MxC#bdv0eb3MR`r?)sPB_&!D?LqTR4At5 zuY~;eyE$da_K6M%qsY0ZsH0DJCN?Qgb2bTzrq=j5K7!!-8ze1LeZ>)aOX0gW^W?K; z@l!k0Uc_U84{k5B0;hWqCv1IAh5C;Au^uCt&$nl3(e)8uy!_B|`(Rx1{y3}17RKg- z4Vu?PG?cC=mB`jr+ThMIC)ACYr?FA9wvxRJ6p@@n7KV>S%^Y+|$j zk-)UE*>5b#+F(1mG2i#9gFLZ$w#7hu3quiw1)Hg@al~vWbH#l#oNe1W4zs@gMyc3H z^%V(d&tm+Kp^02rBb@WvzbJA~;V=Z1F93HiYA7uOZ_nc>a#>Zx$llnAK z>sEScLD51KqZ)+4Ix$ z(ML_l$8V7<_T~)?+f6NmffQrN@g_8p87i)&F|J{7PFfK(Hp2K40nM~;UJ!PeyWtzM zwRpNjY1??!nwRlhLhiEx`O;AztY$!kA zbN-5DW5f~KAE=0az}EruoGkU`9DnQA0eaG>$8d?UTj%wfa)!v(B;K1;8!{f-r9*?Z z$GB(QV1J0gClj8zH_!EdO=JEPhMKB##4rve#Y{}VLu!`TGE#!ekCT;PLu1(qe;E*) zA~%!MS3m`Kl{|SlrTZ-a?Zjxf680LCh%I*}*TMue!~yy+qz@bC?A}q&_P^!we^TAG z@MJ`H*my;CC_tf%+UFO^wU6<&5D|n<1LH?Y-G`ji&U90TvE78Oev8US{x8Cnl^~%P z+iW2G9lG$wlJOZ^R{iWMb{|_fK+ba9R7TrQz7IEU&}MMv1hY-x_gSa5H3eBgLToOZ z_tSZ!K1~QIlxZcBbWgpW)o;|fweGT1X!x*F-wki`M6iYGKpuQ}iX_KMf%Xm( zrLQf5q-*W7(!QB}PTHB!QWvQmL%vCaI4=sEk$%kjIM%*DuqHtv#n~4d!PJP`GVz|h zfTZmE0GI#LM9LRkzPYq$8F)RSy_^ne6DQ7Eoq6e9JDXq+Q5I7#Ly@gB{SFCPOQ}|$ zQKdaHJWr?^QNNbh0mi0fnBc(|4GSD&RCuL%(m?T_8A;}>oc82SlE||h4roP%a^}W) znpdaTGKeTn#Bf54-JBhLr{v?|)APN74h%TSa)kt=lYzU%ve+el#MEJ)uiJ?>aw%~> zW1Y-4Zj9&;%`AE>F@IPVIqhavgGOI(jq)jB1nxZXQ}q(Ss+OJ_$N;MtZjCp zs-m7JLCt4UE?TN)n_)Vgb!$YU_BS)cXSRYyuhQnUuA%SX<;dGT=?`@63jUws7O+=iTwqXxFA%ilD`P+r2H1v1Na+ zds;?6hohN>Jn~K%5o_@Sg=H2YX<)sbO%?2_*v=H!4o0w9v`~$!+q&>Cq0`c`Uz?PX zk`aR|Ta-~1hY#6=GL_h0LPL=myhR;M7qX*?jKZ)e61rf2EV4GEQ|1##BFw{y^H}y% zpBw+g-XL~QIRQmC93oPW`w1zlMQ<*IdPKUyCGf))BRu>uC7#en%PYCs3iw^4Zbnxt zvhf58vzoO!%$LKCVbZ-PYL0`Bpt5mXh043y7kA^j54Yc5e{u4O4f%FrLZbQHnQ2jH z-gtIv-~5LxZlgzNe=9mx&{s8HCH9~R5sqS^6G?B|CG`FL_|>JSAnVG~wC2#XKR*Lo zNzTfNgNT$w6;3%px(Z8*ffKU^t9Ln~V>TeQCXCWm)9!DQ9>_HQ_TvOz zgaCZC;*9NJRtJ?G)5_qj=j;F7*d*$1H_$xvJGNM zYyqR3yDc@Z$c#gVJi2R9$F8NbalQt3+`a*{yRjx8y{bR6rQFpl3P>(NUd*?WiwLa}7nrZ4@G@G|JDklgKZ-mY3z zsR;^P#RLj-2TpIaQ04|sUj?F8%y?l@w{}tFUed(I8ih0klZ2oXXfB{_vJ3O*5!Ll< zg%OcRIId41@8`5hq3-dwN|K|}(BPJ}4e5l<;+PUOle0ab3m4ato)3!*MnW=w%B?z@ z?aO{GDMh5^e)NtMnvukr^B8AkFEjWO1eXS-G;zw*$=X2?*pXV>4fw%P?As#vhFdr~vERqR117V>Y z1}{O*p%-qngY86n|c`E`x2*S`cQrm4c5{YTT~IeejmL8=H!s<@|8j%}Lf5 zrzNxarn~O5PG}eC?CCG1GV;g@=THR#{#t87ZYZ<-E5`Gxt^l z%a&DrpUcbz7f&F?<#@53Wh<7aS?pzMV1bxB;Ua&@F4a+71JF0>oO)vKU8UJX(EWa| zNb73eB-JF+_`sVtrLv{G(v1Y+G3m7B;|m2H$ReeT9mNJ4ULlpBF;?iUkmXY>5J-yqgr{`Ox z9&BsuX3z6OSw6Sg59aLmSU4sF7fWqcW(R>U)R8$Xqw-xdt_HnVtj(}&&zxa%Em~&L z2X>Cd`R7VtW?yNQxJbZTL7Ndd{cgM~37*}CstWZFl!u1&vcL>1M-y=r^-j+Ie2yXw zf(kRSbQw3l*9-JhQHUr3>4L7GWbz2J#(Deig&WBlq#)wq;!%6X+N(C@V01Z^ysut5 zU)2{G0^4B{dX`MM1G0sqBq6w4Dy8~-`)8avN0VHH%Sn*U*fYM zK^i1%KHmG#&Sf`sWgp)JkHJ^XNA;x7$7EZuNG62>N7L4h@HoMJyjtWtnFQPz%5jU6 z38`U6yGzJdG(Vh|?yvKCCyL1+Hj--DU4%I#Y>R62;UwX%!&X|>Lve%6`c#a?E=Z#t z!8xdo^K}F6yum4KW%)6S+xW+reF^c5DnIPP{1l&2x??49vShB2$SdlfYGw=qm?i#cs^-%;sZ@sn6~zO^~@h zoCS|5BX5v|#*!f!d>7^`lWl>ti)@IQSFw^wc?muZ70BX*|HL5vV}~c6Pt8{3;poKv z{08Lx1JeVA1+01d-XO^N|M}$v!ytOCAqakoe7BzPh(q1+bdUS*MLB8&gkMLjVs(?X z7Rta+J(967sDFN9&Nx|jvAt{p@dZS-L%8J&H7wqrUqCEgmXVtTWT=^PP@y;I?Z1CS zhY$WJ-AGngU1V$j-qu_1KFHSJA=2SIfxEY*f^tHfzRsP;lZJf%-#b2_5ra|!Q$gZP zDhs8guf$dj`tu4=pK}EM;Q|0dAIyY7tc4Fuf5fqFSmuH7&yZm8!U@66vvIe=@q(7# zw5XtaRZNKrVgGww&h7Vg!sHZpv=isjaiPD%hC!7=hXud{6jw!Z*Is8*)=KQYe;)tm zk$00=lFwXppLJ{9@XLRmiwEwDh2jcCz?XLBt^Q{QQBc$%g4E;dU~1p}XKEAfrZ(NE z(Rn?Nj)6e|u0=qmbGl{de)#VVcw$)-;{NF0*^O-g ztI0GzR2llgX$LfkCFYFAoglCjccL1Mj zVeRVPd`r1$2NnsR@B8;c>(|XjEy2MEB=L`B%3pNmoYdOS2jX20&7?5^9++pFdu&cC z-GiT=F&6?^8vwG_<23Jn0OThs>FDV@@Ay!epBFpZZN8%MySW+!u*o|Tx_h8==+yzZ z_#ME~5Tb(gMYj*WrFo^NJ5}hqy3thq^Yzf-?1Rax-)z>kt!^9rddJhkatSj2QOA(z z+uB9HgJBI-CUH!K+pEJEyjc>?7i#?gfXEPpgdGP|4Ljk~{nmj1``wZCLcr>PPP@z` zv!XpM3I>{qGBcbgT}^=V>C=K8(SeFxJH z)YkI`pUW4m-*L;`b`9u*jZt?8a>JIsXGmgE3Oz{A*jgI#F#~8kICXSIH-OTvp9ut1 zs7anKn}ydOmC|XulG&c;G*}Mg3<9OU$~h`t?-a1q?QzH~`|%7aaX>chVVCfaGXSz- zf*O?Q@q5&)4h4GOT%Q_R{VXXa7xo-3Z=80j&~Q~0KMVP1k5NCo`v7SEq~o6K%Du|{ zvD}r`*FFRN`4wRO51OvAAJAZwU9M*O>2Njz1eTfDE$qu_e^~ezi}_JWvx^H0FLo}S zMryRbn0FqL46!yYqPJcRGif9u`hlrDm^nIS`T62Uf_x|@1p@)I=2Kf%VXu>lE38f7 zqBA+4%ag?2Z{8N?6z8h%+10f-S9{VJAqQ#kzZTz#ze?#J>xo10+YW+MQyJ+fuJ6Ph z`1S0}T^o>4)*X-PcJ9z>%`mEFuppK`c(6HI8V}^qwZ8>qg@jO8O;tIRTkg|#?Vb%* zIha}v)kKw-RN4;d%$Y2vlJeR-n67cv_+0C}ol|t>nFfS_imqmGUGjaxPCUOZYv@96 zFE-gciq=hcGGJ;~Ei1Q@Bo5I3n&79uO>h{t;1i|V);sL_4^B*+QY?>Wqb2$gZ7&J| zWg?srG8Va-EysA)$*Zr+0PRkw)zOu}lzYPOxmEC9XuihZx>1MOX|;xBw?1Qs9`GmB zI##b=JzafqZi<-mtqCpWXtIB72_Vnay3Y8_e%u=|I{SmCaw+9w1L~Wqo~IkdnmpDs z-NJICz5KLXwPt+DZ@d0};sfHp3<+iKBaZNQoZjR1E~`fy(~8o;`>tePZ3doD`W&ef zY?L{~x4(=B(wwRSE?Y~loWAY=;$8J1v3)bpLGT0!piNwDoAcNY|5Sklv+1mr_o}9_ zixaZwW$^}u_{|4~{77#%Op#lPS)_K^oKXfc2E|F+@9%R$G+dv--28PU;R1g=4Cbc0 zb+PU;XyACxhkG^Vce%}1$~O$UU$UB+7CHcY;w^wDp)6$GkM`V|s!qJ+_YIQP4>J$8 z{_z^05u(!`Npc@xrV@T5oo3WF>#n{0dM|$nTLAS7PJpTZih7XARPd+bgoBHDy|7Py^DJ!K2Ggg3qAt zxw*XruX{YbsSHVe_)GzBR^@4$JNkLS=`sEIc1CV``DXck{NFFR=C>cj?z=;bVIbL`@R3xNArl|lLn)xez7$?tg1msYNLVi- zA-mCC5kkTBA)1`$NinbPIK0biXsZJA^OC2RKZRul&Bj*SRR3|>0c*5kP!%X;IjMf7 zt-eS8Dc6QOg@9`;upJ)4CqAd7xW)q2w9P_OYsTlGxVU>fXKtSg}< z8*C>_QaBENVNQPp( zWgGKdKgQaanNE4U9(~&hcp5(dHp`?}AcHIHb(C<|C)03!ndfBj{3)p-LpxD--W$}o z*ibC8hu{!ft<&CkC(Q}=>N1csjdPoEk&bk@J)4DNFmI-lmFv;vb_+|W02`+3#&G{k z{I4C9{%r?w=^0jh#yJ$%0lPV!>5$ltI$LD(Je}nJxd%DlmvacY=*#)X@cP3C{9cWGQwY5v#pHjp^>( zdTDZkIrbBQc6>ezOHpLXU~Uj@jL=CU*J!Oj8}2j_`1rUCVf|)(JB`nptRC~{M8nUk zhP^A71+U{TB4c8Rx&z;YhE3e++r3yN-%ip`4)`}*8IT0wigO^vSDAB2M+d}6_UZsM zbTAq2PuIG2%{@o%nr{gkp?Fs9Xy#Ei8}Tqyz+C(lV9NaISZr4ZXYql&K1gCjJ_3b+A;Gq^I>j-4V zek3w~Y{-qw;QBUs_bIrg!`{aKb^7?QzcR9sz0RNP-rr$a04BRMm}8Ve*z;+*MPEs< zKtm=7Igl_Z=>T(A$8$xrrw~)5p&Pd2WWbL8>H7A3mCA)&DkdO=0yUd>)_YT#erW`4 z2v9Cm%b+?bH3cKgM;pMN72LlDH|KPn(z@&D8gc9MbL}0loe=J7-u-Lw-zxtJ>ejd) zwId4Jl2kQR0M>4Wdu-WP4P`qZ<}7#WP@&KHIzqA814??)K41h4;EWyzD${ZqLLN_f zAyxP7P`1y}SJJ+ye2WbD2zYVg-w-_fgoMcJpLhc_f`Ov1)H#4f$8Vb&yd8CtqIB)D zeT1AW|If*WHtkm!ES#ioB4n4$qFpWrMBSbixwM*vWvRpdhm}?fW>^by;uYL<|N>VIyC{riSeEJ{jB2?(Js82`^--kGqP zCP?(WuPns-@5<5Pn1lDEz}c#RgiYu-E&TNrv0}vF==RYFdvT*P=dXnVmw!cYB%^QL zDE}QmteF3wfQc);T^)j~C0tGNKUcw#^B2}aBh+OnO7b?(38h;=q)X{Wx(`Tq2uPQdAV`DKphzD;y1PLd zrMp4t=37U-$~(sQ=MFFX?7eEP8P6;`<)3(eiA9nk0lb)uwe>Ot)r8bU@87ssqrV@3 z&y8~7D}?_W%Suhlas{R=bD+H{sp9Z&k^ z7&i7w9+dh}SlVu_pnM~?J5%=&89;b~MkesXnE1tktI`P8* ztowa1FBd`FpRF5u`kRH0OSBne%gAcwG8{|Y@s-5if)*+yv#ZYGaJU~?x!Rt&#|`(# z&_`pC@X9i%<_gW+jm|qI-yKiwt@2?JIo6kbF z5FfY$A%|Bgod>~u>}`t#EiLLV0vvnjlM{)tuI==vvip3_ve!#jRujo6 zLbs-C#xF?-{~RdAz2B!vDUIPdL0an%>%a_Be=f zJ3P|fvCdU1U?|WoQ=0{Sw(`0sznClMXryQ0F{;U4oq#x?3shX%PGHDQoeO~fcK~5K zIlDlRs3LIMrvw-JAzB`S#xI$1heAoSpo0hl%ryiuAjH2W_|Be#j7266lYYh3Tu}FY zK;S$HW-pZ3FN&W6b^aqznH+RuH%CtI5^)QYQUakq1nSq&E2jB`kqha8+BJnP$LHTR z*YzAgkD0vvjSCgiqDejbHvDe12y%Urv-hA=520SgqVylG_X};2hoK(N+^+f0Ix~kr zgY?vn3t%`Kby_~Fy$jg_jUc96c0C1;FJE_s^ zi+Vut3A50}4}bpisnQ*5inLVk9oIwBb7!+z5r@_O?JHf@#-VFa*tZHfR&aXXJO}iW zxZ?S?3M&K;!^2DJL9dFvAI~tg$JSXvcjGvvObOJJgkioHGm$vd(w!g?B1V!`vn1<$ z63Fc^p-e9s^PaLR9Tpx~G8`gC4JW7GxcdD5NH78-L%V0e}uL>9$&Zz{ce zp-;csp0Y)tg=i`Gi(wnusnI%Z_ZfySTIl1~oI}|?La~FH5_!g#tQvl#r1;>OWtcdhM1c{J50keZgZhVA3PM6+%zKC0;b+eE|i1a6$K2OOTc9N@-A2gKu3{~i;q2V-P*Rg&bWJ1 z=Af@>_cRT)!EP0K!ymOvm!v5IZrzAa=pL^govebg0A!>AN`32l&X!r5Xy^rlao`aY6S1bNXqJN&%~|2$h5RpJi`54hCy?<#*!3}wf+jS}dkgE7 zJFW*7qq(R|O+>HVPJS40iVRF0uQF`zFSLb@A_}COukD&)r5W6kc?D|wA6RhGu@eby zfqK}=2(r_}*A+fe0fCq#h4qOf_uTlr{YVAp$a^n^fs1g!JMQyV8DthT zaHzfL?m2rWa+(FfL=!i8`g>BwzqvU!^&bW6-ITap5WQ+{%sn&WwKNGljKaq+W=Zq9 zxowi>Sqx9=&ZRL0Ptv~Fj_X}cRZ6|!aX-q}x*HcT9S`Y%sA6b|-8@QxB9TP#9RufK{Ti|IvxgH1FGHFp{30{OwYvNMN*L?k zb7E#;17P)ost7D8#IYryl=ifS;35c`{4)KZ1{UY)LA4B)<#lx*@ug)+Bxq@3e^*bbz^d{_wv0tdYW@=s8 z0XV4t!Cv5xwj_!KQ;7b9o!`47*RTIjI_8`kQKv^EWMPV?sTQ64tdwbV`ewQQNh~ti zE8zg$*4x|PE28ziFIBBc`u*wvX2))`#jPq|*?IxpMlRdhCC}dsX7`Ut`D>dl*D%jY z&DML?5um<>2A~t^(2bLvQgiWhAMM`~E2 zfglm6{=KN#*p?={XZ3MN1eDb<>)98|=e;d&$(%c0xS%@=v2`MZw4{)+u>BbCI2AeR ze{Y~VFvI`d@lKdUeJ-Y+EyCQ}@**WSHF z8J);=Vl0Z(qtIfTR|JsEGN^Qb*UBm3c3x01%9JG~B{lTXlCUUJk-}rX87}l9Lghhd6J- zTl9)-1lFe~sT=2I>VPg}6kzj5*C>$awQIdQj>-{hX!sGNs-iYOHH3fY*ld-8fQ+G{ zwqrdR))kTBblUWSWM4MhybP)UGFz5<;uQq17aWN}*Pzp{7T@?aoLhsjVd|jKq)|_t zT*zu0Ig4}686*?zYr+L;I{Vu{i#AlqWrhR4AacQw|JI%%JjS6J$N>S zBog6Mbt>e9WIH695?Jo#e-jtKcQZH z8-)63v|D9we=k>Fjqv>fGYCToS#v!Ru(yC`LLFCTc_3aNl(~55ezc`@etWNIe7J52 z7>Me|NG@R_pi80O!YDAbPiILB-^oyl-@9{X@%^JemW=S1KYl4)L*P%DRRUTvzD7+^ z)yh35BNQPFi~wpbK|wuG%GfIzgIth5v8OjyT`z}*b}0Q$@vd#dC5;BAQs@`geG^WD zs8y>JyLb_eF2FbQwkcxRNa$&hp8CD&aA~zrz-*cUO|Z>}KfUE8xJnlE)SCHlmEv$d z$S4y>M-LRV+L|z|C5SQUfFV7C6GdsdJrr}GV`zJfsWW8<4Q>kK(KI4!0BbS`yiOV zcfu94G|2tT#?6cPa;To_6u5wlL0G6wPpN4aMXz?56*aW|ndAmy@tq#l+tw)pt8eNG zy@ykQlPE4b#ZB5``nil|MKM`3nb%_G?EL~0oPcu~aEb@;jk<^|LcDc+N4lYq4mYdu z3^DW^?d(E}RtV_??1fIJ`6h3 z*oIvclfP-KyM6T7O)-Atdwc&jJD8HBk5k zn(OJX<4Mu2paqj=FhsH1)?<-|1pR{m0PH~XTR?9b*ExeKLy_wq zay$hO|7GFgJ)u*AB~;{&yHhe}f!F}dJq!9aWhE~5-O5j(gQoj#mowb_w&TqZ# zmou^$hCl*`=>iU}LK7LE3lRuK`@4oe?^d)LtjdCVY0NIP|BjCcVC68-$6^_6Qxe@B zW7?2k_1_6XCH`=TnmXzKnP(hqQ+_$AWh#gUZp?G*x74`dr2d}wW$MGf$ry$ROZ#1d z(k(GSd}N_^o$jw1gYp(}u-1?T^|qH@AB;UeH{gL3jJu#U7ciXec0$9`>xcMnAW5R! zzA=dIpoRyP?M$sXuT1d#_GE?j(MO2)2LflAw{wL5RzLyQfcP9|i&`cwCPOUrtgmG} z0;VtnFQ2B@CxBd4sGxY=ygEM=D5#rKfB=H^Kc@ol$`!}n$>FT`bu8fX-9V%;Hz-1% zK{@g>KR*BQ*XIV{Rv%kdzi9HqbLNUVYNQhp`WHgX4UHKRWuav!2xh&rMC ztpGH9oRjhnU>J_V%wN#yt_y(FNMlakA%4^8BH6BcOOav3&$+OgW&@UN|52|neENfT zAb-0;rI-O0WG^q96vL>_(v?JCI=$I(`Hz%+5TD8d;_(fMPWoXG(SuF@4!?ztc=ykf+vx~+BUvJaQ$KavlI|IL(wTf&#nHrIS)Fz%-C z$e45y#}Aw8$Xm7iCr)5r#L@%b0w$6DUEnsayZ_Bm68Mi>@(4;E{~J#jUJ%C2<)JSO zb6_qkyNA+Yg>VUQj4UkjB}V-j>i_&t9QXz<^z zG{Sfha3-|IV%9{nuvIUZ_C<+RwJUzHe0cF6u7^Y6`-AFt=*wH2#Wc*Cs(Z~tDa_i= z)g1}xc8ULPTXWbiX2X}!`Z@r!#`Mx(fzL#^&q6jo=D{=Zfz;FgPzu=ajRx>l4l9b( z+^$14c6XeAN`nhoGIe%Y4lzy6y?8??qd0lay9+`cs8vs0Z7u);qp7Be)G4 zAXyA&jO{)M?KnX1-22DoK@1QV94#VWaCI~9P&3(dS*Ynv=o<3DC(|#Pzlc#I9r0!zX7=0WSCazB``e+rZqT~GbEYpJfF%H|xLQZWnn+49m>;G993OB<9(Bg)dGuV}H&S34q-0OewSf;#hQ{J?4+>|Dg z~)Mq2c=XeVv;^;GvIjEW>#2a~AEhke+5es&pb7GW)P9M*^f*8 zAG3$iEEYULJdxG}@E8RR&Nh%2b)`3Apt7Rwq|6Fr6xbZY) zdod7pAQgs#+ot{@Tl^;Hu}1`BSIV@*-+ZYR2V6ak>hJvOH-`wOgoLz!06J`!OAW}) z2XwTMV(4&?KzGp-g@~JLTR{2ROlBV+hV(y|ks8oe@yjyT!keqYmS|*{APy2(V4*<& z>!t+ck2Q_R^eeb>(6h|-e>`Zv-r%u+-l{81kZ^OaO7e{suoH^Ww@JC7v%M3}!iK~oNY)rKvEHO0S!^h9aGgOrM%q@pZc^WCA-GVO z8}mf}QQQqxU6P_41ze5tLau@Td`B<_O3{p>!34Da5NKY4{+}1{;5O5g(T;+vUokP=T*3h^RBM7~ z*!)1>KIMkZ^iEh58>#_g9F!Xi#n793G^o({aANUAFEtGdiyj&Q0}~P&-n&}YeVIa? zDr$f!0MGmb%@UJX*+h0R?>lp_X;4xA*loD(KJ~te1j<_X`f&C#fCk=yfS(@lcNU3= z`*9qm^0bpdj9a*!u@z}}%$^0Hx|^SlQr4FxMh#hqRc0#tsy(UlEgove6{d&8>=Qy* zj^Kiz=)=defS`lboNk3wFkwPrgb1M7hixFA z5rbL&Y4>Xr0?b6|N|_c4K%vD1S{7Ch zVs{KP>$sk_>Kg*a!bgpLHjCq%Myui5Y#|@NTVu-jiwjVBKOl@qc-Ns-JobSGayS~gdrIwTmRiC0=eb`j8*!%eo_OzbUP}3^$|PU{nVE|MnUV!7 zubMWFI@*aVvlNO~rd7ydNClO8-Z08^P4}Hif84n9@DNYK1}uf{A@uSCeu+^#gy%^6 zd233nDpUfZ(IFieab{g+tL`s_?PuLmT^5MBJ{DX@!Nd(lIKcX>Q}t%#v!+bIo3^HFoV9bnD1=azJ%uavIURjNjN(UPZX}i>NE)ZnB!!rTb0{9nkzZ!HNjx1R)iA2 zfK+xLvy7CAbAt=rBBeJB#)JK&AT8a*B@n{~hzW62?ZctwaMXyMli6t-p+U~nf;3eD zs?h*splV1m!f8xyjyP5YLp=KS6yinu5M>j7tQE6lezf}d-n^~l@)vhBLUgv(r!Ae` zAydMAB$fmjNNw<$avk?%P@&9d$k!>3nJ0dx*5*n9NSzN6>u!mcKcDJj;@3VpXI()K z7bm;UB`-Z@o7)PbRs`A~sbnsy`yqi#A$bSxwNH{@Zs~o&N=D8ap7H|fyY7`iPD~om zcT=9b{y4U>M)2sP**$_8=wUBZgOI`5OQOS7c3u?C*X0KN_`;?%85Kd$4g8ryQL&5X zc+9GrS^^wO4y%k?uQWAo!7iR8v#*f+{kWW#$?o(l>zrxMrAck3t@*8%yFF)~n2(ooOZrF}cUV54kg0*G761_h_bMFA z$1IgQ%XmWjJ7sh8-PA*5a*K>92;CTI&Hz6hI4oYQuNkB}Z0Ll&Z;4W!Px4*XxI%3n ztt-+d0CQS+4Yg6gWGd~G!S*m2w%?^M@`ukmFDjduw79tr)T1O|>X+}!hgcy46-SpQ z4nDw&L55i|a~N8FR%iLhc1l&K;Ok3RJ__g0 zFoizd&JcgvDG_KBmQ>vq1w=qrxG;B+$CndmM^GZ9BTLe0b2{B@-~(UiAmq9FZY3vp z_cfOAL4vs4``n?zD=XIt`NG#ykz_VPR8K#b{8E12xxw#u2$9D{GXl$vtxJ(Aed6Ot zs@{*|&SZlX7JAr*O*2C-Y;gA=NH)KOcIr#@-LP zr=}hd0O$|p30!Y5@5Z-4hpmb%h^aNB5QwRuL_ePvM+|r_j)>F?sWv>NEtiktgDFPB zR9I$q9l93cBUF?)V^NPnUyqiIzsgaW=KQHl1vMguX^s>Hh~?g;Pe0WS3KrC4_jvsk z0rNOPbx+%*EgXIcz@H0OiAEQO1Z4Zw1D7DrwIUcLftj+iUH^8p;V~H zCNMU5@aq=fA?$^-{t1mq7Gb3RB!tms=GE;k*744`-Fo}1#}zZvz~3}85cy(14W_w%)GU6M@8O!V*^m3Ck@lx z|C;z`P*JtklYD)~S*!1Jba-S*FoxRfD||>|A^G-$WmlnYy9ZusptIncj+A@Us+Iy+ zcZoD^!+4EdOrwh>Vb@kGS$JHNp@B()*zNPO2pHV}IJ#bD|QyZ4YpPeJ#d#Er2AH}C2m^!(K zj01gkt2Fh<*8Od!ze0iE^aFJFME2#S{+eA=ItjkAkn`^k6+fHtbh(Quot_4ZXgEMsUs8m#)PsfJ$jj3aqt?a}^9e^g75w;ZF)4q-atcR?<>ZuKhW zw4qeqs}CORo1DHvn$RJCh1!Q)TxNwO=c`l1#9s^F7?j!1bnDeQQ)cFIl`@Q{kdOE5 z1|1`9#w02rV$3&>$Nr6w9xJGFxUq~2ykClTsUpGxU6%S_R;V-654rpz_%Wp zh(z?vkm_rXWgp5Em#8ADT_w2|zT*s?jg3X0k+xJ5nciLQnxwKU=Z;-H-{oii(4c`e za*?RHgk?5c917ytRX@qzV+2)w<;VS2yR{Y1!cqI{VhfRsSKx3bQV&XNIdU5sSGBXJ zT=z%}EAr=~-9@}EjT@49T~DjDtF6R9V`bxIlEMnipaHgao~@ZOIeet2mpR$`YR3UA zB#7roFZ@1uoT6{2UQqd_;Sf!o(wy!u4W_LSo0$+ak?s1(gxy{3?23Y~Ga9T&)`VVP zv}h&%$nE)FFz{IW=v7tv4yA?L0h4BF-l#WG+|hXT>^&9l{a(!y;+-e)`etV*@}AG3 zd}4wZ;d!)5XkxD<0v$0LHf^&-f2flGw6Hzh9!FsKkROP>^mA-_>3c5c)Hg$#X;#5= z4T6CW8+ykL?qrdH?fR8eC_n4#wC)XCwRNAI-d;*s@jO%~KDBzr;{l03uc-*=4OC^H5ZvVs zPxip}rF>@|PCrqnJ2;`EzByLypgU?&;x$cJa{A%zI$HY9r9y7IeKpzZ#GtT7^;Fhq z*V2xfi1Bn8p&Z4W-18b&gO!nrr4M&3M;IzU9FRM>3hg_u7^AHBwsZ8!Kh1oo{7KfU zl>1^*g!pK08R|Ar%l*8N>G{;IpzlR6*<={;CAs!$^m86Inz^Bmp>V4J)ihoDD`zN? zoKcT3O03p#0AQWJxP3?>-ImAL^L{|Bv)o#n)VI-}SB65dDJ5GN+x4oTXevNVR>ih{ zi>T3UQ`h?AlIkdsFoK!q8^IUV-a#G>1|e1#R^jg6b#{GkU8JXxdGm@)6;h)@o@uS6 zGNtD9jn{H4XsTD8>d`;X$bea+^4In{;TL^>dZfGxO8q~R$Z`$#uYMw zR5_IfQm)(6DX05cgPC@E?FY6?Gb!lBB54lG49~Om5Wf9fe4<&#?wN`Ac!yio=JPPs zlg9Q&&G*xiZ(`{v1yV^?_Vc}GPU~tp+|tgE1zF!d_g9)`3`5eW9-%$71t)Z*V;FX4Y`w=%W_sa|i;(Hu>)W?F` zsT-y-+dlReV&e5uf!Eje^j42?q~i-HTxP~q99DV@Ztr;2Z%}?K-q!xsuxq+J<1W_3 z_|c+FJL@X>?Q^T(O3e0vU<#;tpUx@7id>@Gg81b|t88|4-f@fA{!$~{-CV~k0&Y;D zAIV*9G5u_hD*pQ6n_9b}(7?H58~V$)PUNxTqYq3w3}*)Lgn|zuC>vvtG&jj)@zM6fsiY)f@hE4 z?>1=LqMW>lv;Kj^HaaPITC0-pQFms&{r)4ncmHdn$wYMwH_zM$jf>RwtuiI6tJ@pd zU^q(5C+3SYR!i>$9exP0>6f`Nf4jP*sZbD_dL0<{{(*NYA0sQj=QoJ*V%(Xy==*`G zi>X9nbhC>uTyBgjefL2eVJW^{KVr_VfKQ5#{*Q%WngFlH{#aXJf>TQ>}(quE&i$}RQ&O4Oig&EuaOP*P z^4^KQF?gM@mZKbWmxlh@$x~c`|1?RZ{^<54r)nxu67NEppbaCJC>_&602*y4Yx|N| zkhcJk=!P|y%AV7+#Snt6vml+SeQE5L=P6%Iv$gpbE1JdLba7mYGo;tNIIq|{RL?_v zK<{!@DYlzCDp^K)EDc%sUS~D3xy2l`N zT@kd2&@qDG%I3o*5&r61>Opi8$Lj`p=E=jT&D>(Rd{@!4?C3~CCKfh%jfqsV^DH*| zXLl3%f0Ba8KL_fFgV63hWO)j#rf^BN?eqSa<~H3iV~u9EwS$Yd^B9jy1|-yKG_UV6pwax2;Vj;oV7~FZf=s>`(nSu{?Ir+ ziTBtkrsloi>TS-2M82iY^d45kGic3V>&4T%i^SjBU#X>Vq(nxCnHsx&BJA*bQ5m(Y zF!1crE*7@W1nG5o-Z55?sE0%F)|V`W_}*A!@~Ra5M0V4-Ps}x1Q~LEfmmy3^d|j8l z)?=S)<{vtKI9D`jx?6lLx!>=g+~>C85zCQTEwnmUKHQXF-#-Zz0_b}ld>U!(XOm-6^Z=S1~ zo-*Xkz2%0dVk2GpX;}5SU!$I#xhNGrJ-KV?6G;Zlm-0^$BAnVI0!@$Uy(MBO+H$ZZo@3DW% zf9!l*<{@P!>_JbJP2Aza_ zS-W^CI!&nph3{2^3k%PhQZUqIi%>>O_sWRd(*(|@#Km;c;{cE#N*Tz%XtL1ryx}~1 zI}qtRrx|V`l^sXZ1)QWwlh-jqgv@0iX3c&J{5>SkJJEYk*^59%*4 z9O1NX8AoM$B`x@Yy!sR!k0r-hpwd0B_HqHi;#)kVBAS(k-*0Zre5)tolUoKYnzLL) zDg{=qDK(P&!AJ#pxra3d4(W>E1C3gPQ+aE@G9tAX$$BIL!_2LRydH)N8E^w-jzt^a z&sFJF+n3uDKpArROScMkc=#l>^PoJ)Y>j(R?PdEin<6V_D$~!ORa2{B0cGNJeW%v} zL$6b>e8y=syjJ5;Xn-Hq<*mDR`2j9vekK9|EcnT;?auSTKEF!b`|w_gSO^4 z-T_}nO$5!Ei-1M+5u7P zQ{gU#=d*3(J;e(mF9M`LtCGu;&{@XIvt4hw0Q%{Wci!7R-k}kBNs_frnHod>ghjQ- z_X*toGI9{y7 z-Z{u784C8u7?vpt2gwn-15ZFD(-ZVG_**R)@k9{``!7S-#^0=IISb}fdQ98_ zX{(rgwDNBXyOZKdr9hqY0r|^S=^V7elP2$EUYZuSu}JU!WP9?$Q4ZYYjZIti*=T2* zsA5+A9Z+k-hzYVs{n}4-yg>dJ*X%PE=k9P_Oc@S(>HTC=ustEN?EP82!_|j46dt@S z8(Fr7#*k>kdbBL!#%^O^u4W|eT&B9(XX%*tj;%8@zw*wY;HSjV(Vt6w+mwmoe)4o+ z#ezWL!g=>u-^UqJOvAybM_+LeSR%2|if7YYrs6>K8#;qmh$4Kye9{s$;PU9~&c}t( zSmQoZMx)8{0&F)_O)EY`kc7OFu);mIhbexqe#f>NGqmgN_k+Z(t9rv3y2BdHgcptG zmXu!>uTq~d{`B~{&|u*X$`;GlkB_@4l6hKW@wNx-d-w1myzfk}i=Q@t@h=&+W=ocPEA^K>!BlEMo(AVx8g6QG?*_0tC*(cp4Y6U)NBzQz3Tl*_B+ zRb0NthMV4UZ)`_GlcSH=$*#hg=8UIf8rs`n4*|+zMd$}}N1o@XR$3hDf<*2-7iM$= zE%?;!BJl|pqqZ?0EN5u6>nE8k8+1s!9aoE+U&Dg9#5g-Rug{Zy;%q2sKk|)|m#Ybj z+q9|D_f{2LtSQfr^u`Ev3)vf&Ikg1&%yE=`B-cqWOG^tBOe+=vTHq1|*n;?l<=ouG z#*zl$O!1?8vYa!j<|Bv)k? z2_9dqim}+uT(#)K&H8tJvl`Fd-##Ddn^*8p=Gu1*yahyecPPOk$Q4q;y^YVPBrezP zv^J-Ax-3*d9D`+8Uo(F<^BKD#DGisKwXiym)6ijWUkatXT$svdJ0;F@`lpf`nnG+) z{GVO(yM?$&H8f2Fk~GklM~|9X!{n(-A*>ssF$sU5OtX^-(syF$tGrD<9WN7v)BNf* z5-s0;lO?Q?IUg;_DS5SV>-e}b>2ztZpE9f~a-(|ORomy#v#qu#(hP+7nfDQPh<`~~ z5txl^ZqrHctBplQu+ENPHz|JHTFEo5ajaxMGS9isP{yC88*4O4Ga1a7@y5rQ^x`Bl zpafv6)hXIyEoJ#-^M>tsx`^doHS)k#>)9S#*xaHR({@_3PBd1rtr1$M1*(B$k8J80 z*ClG|alZhv^jQA41BOH50zc0=s8ke(sZCGSP|&m=Wp2GJ@r;_YM@@I6ql3pnR%PWY z^Gi{QLo8yUBWnqYA8GwKC@Rp*7-qM6##mdc&uACB0sDJyMU%^|gZ^>2pY>{rN9r1) z*`8U@w_Fby&x@!eAP9NWuJ!wU{GJ3>>^3>Fl6TybMEzmvbd4kM@LEvhvt$;CqXgD~ zP*=nU^=`D5x{mvY;=4g5v!e%^Rfjv}J1E>I1>TdE%e$rC>wPE02#DWZwleaQm1*9_ za$L9N$QKRw1Me|5&Ee)jcgiWR3t&JraRtXJdpCtrn0K=Vs}R(>P~a(6TGeWctVtkjdT56 z#Ewn(otE(OL2w`)8@DAXy$PtO?Qrs=DBNdGBs1dHYlrlV!rTK%;UHmcY%baJ*5sWU@05(vNxC_ zy61=aKzu`*QFjv0SKTU7RMGozw3My4;xwUr3poByNB%hYe&fs1(}>&?sUe74Sf4#@ z-K)-j5~>hndtIvrzN~ALcbqy&2MgUlZO<{%xcC@mbE_={XXsqsNAyj97o_qIxj=DW%nE6AL%tm6cxk ztq&6u35FCCcuZEJw+zVOQ8$s?DBw0ukB&N53nOnyOijD*dYgVtnJ#rd-r8k9>KJtC zZ%T4SSJd|=*woh~G(!+%4MWPRxcD$|p>;<(8A9KgA=7Y@-TjDQKCeb@ZeD^R^227^ z*oGXp*TpfMc}iBY)EO}snxYRp-VfA^4O;K;_ns9lafQD5ePqr>xc>4V?b!!5_iQge z9x_(NdmZXqoaMy%e(&W)yJ&)^l-_AYkhvx!W*E>NxKByWpe)uM6FEgUciVRga)z#w1wrI)-4E=H7lsHwxdr{<@zQ+qkO~i8=KXwu|E}0k-a32$ zCsW^JCBKS@<5P?|+r8K4lMEEY4BZfQN6UJ<+d{5xakGB1CIUTpC|`W!gK`Qki6&=% zFq`3iexl;#j^D1}N~ajH=tw6FhgPXJ*I4*g`9?Y6y9P`nPC(rm!5*?Ney!^o3%(_d*3DUb0*Jc-@vWdLOp>*rE zLGEaZ6jn$FhEg>%?h*xvb+g#Wnh0~g)ct*L<~n8e)A7=7Az}EA>$wr^s`51?BNl!P@=y@Nbayv{>Qb{SxLb_nI;EXb@=mB~#J zc5pzOadqdju(hHk+BWFWO0 zTrds}4ehY4ux*P}xLdOjODn4#EabW;QD}xvA_5y23% zFz=^M8VU8O1m8IPZ||jf|4Z0#UC1EK#t;%mGJk z{XTy;O@HnBrt1SRSzib~cda*{+O=6#-h104C|~)|`l0Ca=fjFspS!g#V{+KWaTj>N z_%Vnt8N%`{s%^F{zLY<%**G*(ox{Jbew&wCy`gRJ0(_~7;GL?R`emP$4!1hj1oQd8fBRPTYH2ex|9Il((FblF$IjT@ zm*aJ@8kHC4g;pdaVqoo%M~Hf!S2YvoN7YRypG7V)I3O-^cWX`qhfRA$UE8?JUP*F{ zHB^V6ZqeNB0kr!SU2^8E1)Z?~U(QmHH`vA5%H@zx;G(s(@;on8cUt^OI3Tgcc0Mda&Lo5@1baiZf%F!UM^ld54*>n;1 z*97>EySwfC1A-PQ4yxY>LHx($m_=ntknR^89R8Ee}gcoduCc; zfb)0^?>IVlhHYWzDdULyB;T8ulyqBU@F;6U)?+`htn+{XNzDD5B#fycpgv9!2-N4V zK_S$>hg{t|$UAj&&-TlNhXG9rsfhpF}S_BPid*P9@1N0IHf zmyah57ur{5-$L?xD(o<3+UIr4^%UtHr0%Tjj+vDe%A4{@l0+b1k=BtF_mMo)+|@mM&S z`=tH9RU12gJhRDV(MdUmoxGAa^X>P4yCWnOdqWAmCL#9QU&0aUe3%L!Z>OB+<15uv^A?*Pvy6<~ zzrRK>rUc_i!9EAMvjVPYpa#PO#)KV@W9D&|H;*+aN-Br^jAs|$eD+7`9!S51bX!bV z?a}nXf>5P{Qq~98rnDV{an^*W_kr}vJ0j`t$>hq<&Pq=p*Lq3$e1)v@zZh~OVjy97 z>+2Ag2VCQp0;TeD5;d0NHD=c4cQr_oJQT&{AFME6@x{m`ts8NiSiz_$u5tcyQmJkw z)qY+__v@S2qK$=zp)%cetGdyVNlAvuQT&6T3d7tB4437Ro8dzyUKzmHGq-&LAxckCI;jb!xM`3*eM`rsLP z!Nu8GlvZa}UMa%#^z;}7nL;9WaJ}Z zV=ML~Vox}jDAu}PAkb{j;mLqNC|&PB-hTZPUS*0i-d`E{lOZz_ogD%kvFzF43^Vr+ zp$|X0f^4VfHs%WMhWhAw3k+@QefB%{GYIJH={eqX9Ur#?7eR4O9DXR;Yo*sb>Fmp0 zCks11_hDNq=S#PBr}#O~-b!;KP2LcJ-Eq?eO>iG*Cah<-u)fsH+1Zc-`$Xa$0HaJ2A7+O%rQ36+%a!{FGE&r17nrJ^_dDriKN zh#TZ*(UjSg!R9#8!U7>@67{+Z6T!b!Lm=F3;(dsrK_h9ylSu6YAAwZ-?~yPCQm;?4 zz?N^!YU$rUg6DR)@bx|d@RQ|glmp6GdOTZP^DQzre=zsi#~YIm!C9gKLof*t^WSee z`$AKw+ryh){5Ll2tx7o`xSGj&?DC+SKMnNpZtRaC@(&cd`CD#Atn{%|BEIrwi`Mc2 zZSJ*^Z$A>{qGmIkfx}y@bLro_Sjon zTjvh@K74E0DJ%*q09@z4&!D)#p^nJN$goj8x&4958eX0E&T#{_hxd)SsH3*Fw`XK! zA=*C+gbaVW(@U{-vh!i;FGflzicE?kAUWb0jd$@z0r6J{P{76n>xQd0!J*K%M(hT3MAU(pFXQ zj}`ob+`ibiCYgWN3N{bxE<83ic4u#|sJ#3W9GnH9R3QrTYGlG6-515fVBD$$iRj$i zpq|=)`vcyYlZMlLl#`a$C>>PwviJ@NyJ~trYWa>H&fT@Ga%N@41R6gbJ4^aY$@w!c ztOfX?nv|53@Tn=C*1Yxm-W9g2DQ+9|`4=6ro%b@H8-9|l%RUC>N!HfaQSH&{$^IP( zID1;iQQ@&(O|IY3D<+*vte%GA`RXTDE{zY|qqR+lv3a zVPKEqVVq4w?Mdv*1kniO!$VU=Ev+{or5!Lk0-#2#NQZSBfC{d!Y|YJy!B@<9v4V`v-Z+(gWu&WXSgqp?OrtGYbni z80yhqHdBs5EsQo|8Mn+a`x?kR82^0%h-%8dgESYR z4xuD?s3g}I$n@OeI(GK5N>QZk7Ecj(Q&ZY|BqRk%&i!PIOXFRpHwfkR8=uxGoctb- zO?K!=<`5(e==(LS+B}<}hC&&V? z@5Gfs-TL_T$p20XFdr(#@zaf*oE$X9YFmBr^E25?eb)2hS@HnH-AwVf%@?Qp1u0IbV;`eyYicIlrZ?g|POv8ybl-JRsq2&^LYESm$1Fm2>7GfAhSs9V9|==sz$ z#7IU;`hRPkF(X1dpuf9&bJb;4kMQu7ao;?Ey@kc=*6|%ZdQ?MSfBU86l+a+#YpQ+I z&R@|q^cL6u%4-!`{(b3@6U=9Q^G=*N5wKdXa^lpv$$z^ae6HG`GwZy6bfj6)jr+%E zeg7J6X17j1`}m%)S8tF1lC#v8p8vjh!+(>zzqDt6f06wq?)uICv!8>O?HBuae|FyA zsb{Ufm{zTS{pR?yO3lmh-9O&@ZvS`cnd~pAz1K^>C4b&C<>h+UKi`){*Qb8wtL?q_ z+Uobl%D7Wst}FekzPxt-rpoqxZtqLy{=H$NpZY6X@c-VI*Wz#PagJa7eb>3VoO#oY z{%-B~f3M{A`kZ?U*I%rTO}95Y@BOp;pP=Bxj*x?YcNV7?etP1m?V+!ub7Vu};WaCz zpRN-!ofg9WSE$~be>cnfONZylK7VWeYHIagvz?ZPh8JgP2Q6FB8Ql5FIq9*0uyk|8 z*YzAfr#pv~^ysd*E}vL$`TOJ7b-OQ`rtO`Q`dewz`#qIw=WLY!z3!8J{o?F1Rhp-d zJ^wB9#@<(Zd})(|Z5evH$kJ?Dgu+@n2P+_e5U%`fM-Akj4AY zAN+TD%Os%B_uaF}pH{lJa($$J>dhD6a9z9PT-}=W=I3VvPcFNcea$=4>=$XqbLan$ z5assX*2!{5>+F%~mlhcXT3ro!+1tyTmG`yk$&)7zRTqnkizm*VoBMRRcaHAtC)>R9 zcjxSy9?Mi_xxeD#qiF6MYyBVcBV}!_mYEGYNlVN*5X1`-}yPM@rQSX!0-p9Ai z+Z6aLV*1C0lUD07?#S6R{rrXcCv$YBsm!kHTe9GEX@8hrn5JRYLzU3$_wBpaNdE*4 z;{F`urgW=ub@YumPKR@{+IW9^(5k((1X)oCp}xl sTrRue^u{k6PRCt8?V?{a|6SsLd;bG(7fK!Q`Og3Zp00i_>zopr00shW82|tP literal 0 HcmV?d00001 diff --git a/assets/eip-6865/vision-EIP-712-signature-wallet-interface.png b/assets/eip-6865/vision-EIP-712-signature-wallet-interface.png new file mode 100644 index 0000000000000000000000000000000000000000..c7bc75c4bb97c8edc0b11af59b7a5da0b4f0c69e GIT binary patch literal 212926 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

vrF*7iujl_JBgk*pcMqesp)l$Xv?NKM)NY`=t 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 z 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 literal 0 HcmV?d00001 From 2a4285b1aa6fb2224dbaa79bf826b9198d97bd00 Mon Sep 17 00:00:00 2001 From: Alex-Klasma <107881025+Alex-Klasma@users.noreply.github.com> Date: Fri, 19 May 2023 22:54:31 -0700 Subject: [PATCH 26/27] Update EIP-6065: Move to Review Merged by EIP-Bot. --- EIPS/eip-6065.md | 51 ++++++------------ .../{ERC6065.sol => Implementation.sol} | 0 assets/eip-6065/corporate-structure.png | Bin 846219 -> 527857 bytes 3 files changed, 15 insertions(+), 36 deletions(-) rename assets/eip-6065/{ERC6065.sol => Implementation.sol} (100%) diff --git a/EIPS/eip-6065.md b/EIPS/eip-6065.md index fcb237a52c204d..f36cf08b809a24 100644 --- a/EIPS/eip-6065.md +++ b/EIPS/eip-6065.md @@ -4,7 +4,7 @@ title: Real Estate Token description: An interface for real estate NFTs that extends ERC-721 author: Alex (@Alex-Klasma), Ben Fusek (@bfusek), Daniel Fallon-Cyr (@dfalloncyr) discussions-to: https://ethereum-magicians.org/t/updated-eip-6065-real-estate-token/11936 -status: Draft +status: Review type: Standards Track category: ERC created: 2022-11-29 @@ -19,7 +19,7 @@ This proposal introduces an open structure for physical real estate and property Real estate is the largest asset class in the world. By tokenizing real estate, barriers to entry are lowered, transaction costs are minimized, information asymmetry is reduced, ownership structures become more malleable, and a new building block for innovation is formed. However, in order to tokenize this asset class, a common standard is needed that accounts for its real world particularities while remaining flexible enough to adapt to various jurisdictions and regulatory environments. -Ethereum tokens involving real world assets are notoriously tricky. This is because Ethereum tokens exist on-chain, while real estate exists off-chain. As such, the two are subject to entirely different consensus environments. For Ethereum tokens, consensus is reached through a formalized process of distributed validators. When a purely-digital NFT is transferred, the new owner has a cryptographic guarantee of ownership. For real estate, consensus is supported by legal contracts, property law, and enforced by the court system. With existing asset-backed ERC-721 tokens, a transfer of the token to another individual does not necessarily have any impact on the legal ownership of the physical asset. +Ethereum tokens involving real world assets (RWAs) are notoriously tricky. This is because Ethereum tokens exist on-chain, while real estate exists off-chain. As such, the two are subject to entirely different consensus environments. For Ethereum tokens, consensus is reached through a formalized process of distributed validators. When a purely-digital NFT is transferred, the new owner has a cryptographic guarantee of ownership. For real estate, consensus is supported by legal contracts, property law, and enforced by the court system. With existing asset-backed ERC-721 tokens, a transfer of the token to another individual does not necessarily have any impact on the legal ownership of the physical asset. This standard attempts to solve the real world reconciliation issue, enabling real estate NFTs to function seamlessly on-chain, just like their purely-digital counterparts. @@ -55,18 +55,7 @@ interface IERC6065 is IERC721 { event Foreclosed(uint256 id); /* - Next getter functions return immutable data for NFT. You may implement in a struct like: - - struct EIP6065Immutable { - string legal_description_of_property; - string street_address; - string geo_json; - string parcel_id; - string legal_owner; - bytes32 operating_agreement_hash; - } - - and store that in a mapping, however this specific storage method is left to the implementor. + Next getter functions return immutable data for NFT. */ function legalDescriptionOf(uint256 _id) external view returns (string memory); function addressOf(uint256 _id) external view returns (string memory); @@ -81,17 +70,7 @@ interface IERC6065 is IERC721 { It's recommended that administrators only use a single token type to denominate the debt. It's unrealistic to require integrating smart contracts to implement possibly unbounded tokens denominating the off-chain debt of an asset. - If the foreclosed status == true, then the RWA asset can be seen as severed from the NFT. The NFT is now "unbacked" by the RWA. - - You may implement in a struct like: - - struct EIP6065Mutable { - address debt_token; - int256 debt_amt; - bool foreclosed; - } - - and store that in a mapping, however this specific storage method is left to the implementor. + If the foreclosed status == true, then the RWA can be seen as severed from the NFT. The NFT is now "unbacked" by the RWA. */ function debtOf(uint256 _id) external view returns (address debtToken, int256 debtAmt, bool foreclosed); @@ -106,7 +85,7 @@ interface IERC6065 is IERC721 { Real world assets operate in messy, non-deterministic environments. Because of this, validating the true state of an asset can be murky, expensive, or time-consuming. For example, in the U.S., change of property ownership is usually recorded at the County Recorder’s office, sometimes using pen and paper. It would be infeasible to continuously update this manual record every time an NFT transaction occurs on the blockchain. Additionally, since real world property rights are enforced by the court of law, it is essential that property ownership be documented in such a way that courts are able to interpret and enforce ownership if necessary. -For these reasons, it is necessary to have a trusted party tasked with the responsibility of ensuring the state of the on-chain property NFT accurately mirrors its physical counterpart. By having an Administrator for the property who issues a legally-binding digital representation of the physical property, we are able to solve for both the atomic transfer of the property rights with the transfer of the NFT, as well as institute a seamless process for making the necessary payments and filings associated with property ownership. This is made possible by eliminating the change in legal ownership each time the NFT changes hands. An example Administrator legal structure implemented by Klasma Inc. for property tokenization in the U.S. is provided in the [Reference Implementation](#reference-implementation). While a token that implements this standard must have a legal entity to conduct the off-chain dealings for the property, this implementation is not mandatory. +For these reasons, it is necessary to have a trusted party tasked with the responsibility of ensuring the state of the on-chain property NFT accurately mirrors its physical counterpart. By having an Administrator for the property who issues a legally-binding digital representation of the physical property, we are able to solve for both the atomic transfer of the property rights with the transfer of the NFT, as well as institute a seamless process for making the necessary payments and filings associated with property ownership. This is made possible by eliminating the change in legal ownership each time the NFT changes hands. An example Administrator legal structure implemented for property tokenization in the U.S. is provided in the [Reference Implementation](#reference-implementation). While a token that implements this standard must have a legal entity to conduct the off-chain dealings for the property, this implementation is not mandatory. ### Guiding Objectives @@ -146,9 +125,9 @@ These identifiers, especially `legalOwnerOf`, allow for individuals to verify of ### debtOf -A readable value of debt and denoted currency that is accrued to the property. A positive balance signifies a debt against the property, while a negative balance signifies a credit. +A readable value of debt and denoted currency that is accrued to the property. A positive balance signifies a debt against the property, while a negative balance signifies a credit which can be claimed by the NFT owner. This is a way for the property administrator to charge the NFT holder for any necessary payments towards the property, like property tax, or other critical repairs or maintenance in the "real world". A credit might be given to the NFT holder via this same function, perhaps the administrator and the NFT holder had worked out a property management or tenancy revenue-sharing agreement. -The `debtOf` function also returns the boolean foreclosure status of the asset represented by the NFT. A true result indicates the associated property is no longer backing the NFT, a false result indicates the associated property is still backing the NFT. +The `debtOf` function also returns the boolean foreclosure status of the asset represented by the NFT. A true result indicates the associated property is no longer backing the NFT, a false result indicates the associated property is still backing the NFT. An administrator can foreclose an asset for any reason as specified in the `Operating Agreement`, an example would be excessive unpaid debts. Smart contracts can check the foreclosure state by calling this function. If the asset is foreclosed, it should be understood that the RWA backing the NFT has been removed, and smart contracts should take this into account when doing any valuations or other calculations. There are no standard requirements for how these values are updated as those details will be decided by the implementor. This EIP does however standardize how these values are indicated and read for simplicity of integration. @@ -164,9 +143,9 @@ This EIP is backwards compatible with ERC-721. However, it is important to note ## Reference Implementation -Klasma Labs offers a work in progress reference implementation (*see pull request above*). The technical implementation includes the following additional components for reference, this implementation is not required. +Klasma Labs offers a work in progress [reference implementation](../assets/eip-6065/Implementation.sol). The technical implementation includes the following additional components for reference, this implementation is not required. -Summary of Klasma Inc's implementation: +Summary of this implementation: * NFT burn and mint function * Immutable NFT data (unique identifiers and operating agreement hash) @@ -177,23 +156,23 @@ Summary of Klasma Inc's implementation: ### Legal Structure Implementation -This section explains the legal structure and implementation Klasma Inc. employs as an Administrator of this token. The structure detailed below is specific to property tokenization in the U.S. in the 2023 regulatory environment. +This section explains the legal structure and implementation a company may employ as an Administrator of this token. The structure detailed below is specific to property tokenization in the U.S. in the 2023 regulatory environment. -This section details an implementation of the legal standard by Klasma Inc. specifically for property tokenization in the U.S. in the 2022 regulatory environment. +This section details an implementation of the legal standard that could be used by a company specifically for property tokenization in the U.S. in the 2022 regulatory environment. -![corporate-structure|690x388](../assets/eip-6065/corporate-structure.png) +![Corporate Structure Image](../assets/eip-6065/corporate-structure.png) -The Klasma Inc. legal structure for U.S. this token is as follows: +The legal structure for this token is as follows: -* Klasma Inc., a parent company and property Administrator, owns a bankruptcy remote LLC for each individual property they act as Administrator for. +* A parent company and property Administrator, owns a bankruptcy remote LLC for each individual property they act as Administrator for. * The bankruptcy remote LLC is the owner and manager of a DAO LLC. The DAO LLC is on the title and deed and issues the corresponding NFT and operating agreement for the property. * This structure enables the following three outcomes: 1. Homeowners are shielded from any financial stress or bankruptcy their physical asset Administrator encounters. In the event of an Administrator bankruptcy or dissolution the owner of the NFT is entitled to transfer of the DAO LLC, or the sale and distribution of proceeds from the property. 2. Transfer of the rights to the property are atomic with the transfer of the NFT. The NFT represents a right to claim the asset and have the title transferred to the NFT owner, as well as the right to use the asset. This ensures the rights to the physical property are passed digitally with the transfer of the NFT, without having to update the legal owner of the property after each transfer. -Security note: In the event of a private key hack Klasma will not be able to reissue a Home NFT. Klasma home NFT owners who are not confident in their ability to safely store their home NFT will have varying levels of security options (multi-sigs, custodians, etc.). For public, large protocol hacks, Klasma may freeze the assets using the Blocklist function and reissue the home NFTs to the original owners. +Security note: In the event of a private key hack the company will likely not be able to reissue a Home NFT. Home NFT owners who are not confident in their ability to safely store their home NFT will have varying levels of security options (multi-sigs, custodians, etc.). For public, large protocol hacks, the company may freeze the assets using the Blocklist function and reissue the home NFTs to the original owners. Blocklist functionality is to-be-implemented in the reference implementation above. ## Security Considerations diff --git a/assets/eip-6065/ERC6065.sol b/assets/eip-6065/Implementation.sol similarity index 100% rename from assets/eip-6065/ERC6065.sol rename to assets/eip-6065/Implementation.sol diff --git a/assets/eip-6065/corporate-structure.png b/assets/eip-6065/corporate-structure.png index 2fe581eafe4f7406d3dcea1773b0d4e857305943..75c442293345cef688bec5ae2ad050c5668d5d11 100644 GIT binary patch literal 527857 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�N-9-XOtl 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≤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

aP|28k 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

q5MM&E4OJARj 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

ebz48hhLS{ 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 literal 846219 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

tI!u4FCme8SsU53U*pMB!;o7bLIkEO}p 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 _@0lFGs)p{O2JGR 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ß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

Jz;faSQ<~= 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


Mm!G!}p=CiULwcWBK77-5_E7lV zm_XdZo(`G;V%-vGBw1~qC3AV$bU!4%7ST~^{!WUOE!JQu{R7HAPo^S0*0z{T`heNdQc zftAr!0`*^mw6>aWuc-a>b!l=gK!pg4H$uw=>F!!~PDURT@XhREc64jjPDH!z-WhA~ zDlXwKLPL#9XifyX{Y@}Vg|)~+llpAh#RFFZ)^%gmXB?l~#+2P_9bzeMcV8Br9%1y4 z;(tG`^EzMk&q_EH(2ZNliXY_z!|gd!x^e@Rg#))GGiQOzCq;s<0`*Ra08h3p1D{1l z(;K8x^Ok_-OgfmZDZYK=!8?$G1tL1k&uc*E_Lw*SPJm(_E7zAm^O7-ESu_9*!X#CD z#A@*mzFAhflJitw7qLFvKESFd$g?y{*{C5|$PEXwaz8fjX14}xkMVE~fxDH}Q$rW= zGL%=T_9e#&#{|GiS3@U8lelC=08>sx;c0u#*wU$11 z{6H}p&0H8qL|Z-f1gP<4t3P^AOzxqMCD1sVt>?abYyZGHA9r1F@f1(MrPMRB9t!md z=FbQ$3KIwRsAIWZwICqJ{OZS7e0PVO0({+)t>8stz&x7837rEh)E~Z-c30Ee%W}uq z8V?fGcba$QnaE?{cA1|^l0Ng-u0iPLgZt1W%&$S(-j;PG{gqv@AkO4MkVu39l zd>ZKDa|;3vlM&|U9O*S+Rgy^XB1_9@&KzQpERR*kNze2P$4yLG$bmdj< zPcV22hU0GzTh`6c;>@p2StcmMC$sGjT`LsE$NN(y4j5lCibaaPTeyCqZe=1`TxeKT z%Gya^JbAnTdOZU$fibqL8VvA?0G~C)i7==#xK<0bdXQY6p0;bl*AFE>?PxI|pp;ahbmcN^2!UB!5#TLyk!aPz46L6v54-ko_Q= z1FX>7C+2!i@!l(7jcu%M|NZ>8rK4k7(>0oTcewKEY)-u{oIcP483^-00()4`$d|1Z z!cuqRJuM$I(7Nz_Fh{eSF6HHFK)_lN!r2G(I{Fw5fDh!^8*uvAlD+;2=C6gGfHsH0 z4$LpNY+9KZc7vdOE2XC-5wfAg{IBWmk5O_^WiGr!`C zj%`nH7Yi%E%wKpQsS9>lnx*hR9{>ZT88rOT95J*&Y~o}Zxhp^`qe@S;%g0XBVwXa$4w z2(=6`(89LTr43>$)2Abyt{7P+xDOUaUOQQkJBG=ZVqOhnFmknfwoC+H2r6pnT3ax; z8(J``%B>Q8{Qx(LC+@y- z5}YR?0i1JMM?5$mQUI=ovl^H*p0_ce&j*$bYL>Rw%`@>n$4%yq*xmHm8>joBgxkS5 jjD?kJidL;%yq#5 From 9230fe3fd4089bdfa8e9bd5d10033994af8198e3 Mon Sep 17 00:00:00 2001 From: Thomas Bergmueller Date: Sat, 20 May 2023 23:26:55 +0200 Subject: [PATCH 27/27] Add EIP: Asset-bound Non-Fungible Tokens Merged by EIP-Bot. --- EIPS/eip-6956.md | 652 ++++++++++++++++++ assets/eip-6956/.gitignore | 8 + assets/eip-6956/LICENSE.md | 21 + assets/eip-6956/README.md | 12 + assets/eip-6956/contracts/ERC6956.sol | 491 +++++++++++++ assets/eip-6956/contracts/ERC6956Full.sol | 206 ++++++ assets/eip-6956/contracts/IERC6956.sol | 165 +++++ .../contracts/IERC6956AttestationLimited.sol | 40 ++ .../eip-6956/contracts/IERC6956Floatable.sol | 43 ++ .../contracts/IERC6956ValidAnchors.sol | 28 + assets/eip-6956/img/erc6956_concept.svg | 16 + assets/eip-6956/test/ERC6956.ts | 355 ++++++++++ assets/eip-6956/test/ERC6956Full.ts | 445 ++++++++++++ assets/eip-6956/test/commons.ts | 77 +++ 14 files changed, 2559 insertions(+) create mode 100644 EIPS/eip-6956.md create mode 100644 assets/eip-6956/.gitignore create mode 100644 assets/eip-6956/LICENSE.md create mode 100644 assets/eip-6956/README.md create mode 100644 assets/eip-6956/contracts/ERC6956.sol create mode 100644 assets/eip-6956/contracts/ERC6956Full.sol create mode 100644 assets/eip-6956/contracts/IERC6956.sol create mode 100644 assets/eip-6956/contracts/IERC6956AttestationLimited.sol create mode 100644 assets/eip-6956/contracts/IERC6956Floatable.sol create mode 100644 assets/eip-6956/contracts/IERC6956ValidAnchors.sol create mode 100644 assets/eip-6956/img/erc6956_concept.svg create mode 100644 assets/eip-6956/test/ERC6956.ts create mode 100644 assets/eip-6956/test/ERC6956Full.ts create mode 100644 assets/eip-6956/test/commons.ts diff --git a/EIPS/eip-6956.md b/EIPS/eip-6956.md new file mode 100644 index 00000000000000..21005fd96a0d99 --- /dev/null +++ b/EIPS/eip-6956.md @@ -0,0 +1,652 @@ +--- +eip: 6956 +title: Asset-bound Non-Fungible Tokens +description: Asset-bound NFTs anchor a token 1-1 to an asset and operations are authorized through oracle-attestation of control over the asset +author: Thomas Bergmueller (@tbergmueller), Lukas Meyer (@ibex-technology) +discussions-to: https://ethereum-magicians.org/t/erc-6956-asset-bound-non-fungible-tokens/14056 +status: Draft +type: Standards Track +category: ERC +created: 2023-04-29 +requires: 165, 721 +--- + +## Abstract + +This standard allows integrating physical and digital ASSETS without signing capabilities into dApps/web3 by extending [ERC-721](eip-721.md). + +An ASSET, for example a physical object, is marked with a uniquely identifiable ANCHOR. The ANCHOR is bound in a secure and inseperable manner 1:1 to an NFT on-chain - over the complete life cylce of the ASSET. + +Through an ATTESTATION, an ORACLE testifies that a particular ASSET associated with an ANCHOR has been CONTROLLED when defining the `to`-address for certain operations (mint, transfer, burn, approve, ...). The ORACLE signs the ATTESTATION off-chain. The operations are authorized through verifying on-chain that ATTESTATION has been signed by a trusted ORACLE. Note that authorization is solely provided through the ATTESTATION, or in other words, through PROOF-OF-CONTROL over the ASSET. The controller of the ASSET is guaranteed to be the controller of the Asset-Bound NFT. + +The proposed ATTESTATION-authorized operations such as `transferAnchor(attestation)` are permissionless, meaning neither the current owner (`from`-address) nor the receiver (`to`-address) need to sign. + +Figure 1 shows the data flow of an ASSET-BOUND NFT transfer. The simplified system is utilizing a smartphone as user-device to interact with a physical ASSET and specify the `to`-address. + +![Figure 1: Sample system](../assets/eip-6956/img/erc6956_concept.svg) + +## Motivation + +The well-known [ERC-721](eip-721.md) establishes that NFTs may represent "ownership over physical properties [...] as well as digital collectables and even more abstract things such as responsibilities" - in a broader sense, we will refer to all those things as ASSETS, which typically have value to people. + +### The Problem + +ERC-721 outlines that "NFTs can represent ownership over digital or physical assets". ERC-721 excels in this task when used to represent ownership over digital, on-chain assets, that is when the asset is "holding a token of a specific contract" or the asset is an NFT's metadata. Today, people commonly treat an NFT's metadata (images, traits, ...) as asset-class, with their rarity often directly defining the value of an invididual NFT. + +However, we see integrity issues not solveable with ERC-721, primarily when NFTS are used to represent off-chain ASSETS ("ownership over physical products", "digital collectables", "in-game assets", "responsibilities", ...). Over an ASSET's lifecycle, the ASSET's ownership and posession state changes multiple, sometimes thousands, of times. Each of those state changes may result in shifting obligations and privileges for the involved parties. Therefore tokenization of an ASSET *without* enforcably anchoring the ASSET's associated obligation and properties to the token is not complete. Nowadays, off-chain ASSETs are often "anchored" through adding an ASSET-identifier to a NFT's metadata. + +**NFT-ASSET integrity:** Contrary to a popular belief among NFT-investors, metadata is data that is, more often than not, mutable and off-chain. Therefore the link between an ASSET through an asset-identifier stored in mutable metadata, which is only linked to the NFT through tokenURI, can be considered weak at best. + +Approaches to ensure integrity between metadata (=reference to ASSET) and a token exist. This is most commonly achieved by storing metadata-hashes onchain. Additional problems arise through hashing; For many applications, metadata (besides the asset-identifier) should be update-able. Therefore making metadata immutable through storing a hash is problematic. Further the offchain metadata-resource specified via tokenURI must be made available until eternity, which has historically been subject to failure (IPFS bucket disappears, central tokenURI-provider has downtimes, ...) + +**Off-chain-on-chain-integrity:** There are approaches where off-chain ASSET ownership is enforced or conditioned through having ownership over the on-chain representation. A common approach is to burn tokens in order to get the (physical) ASSET, as the integrity cannot be maintained. However, there are no approaches known, where on-chain ownership is enforced through having off-chain ownership of the ASSET. Especially when the current owner of an NFT is incooperative or incapacitated, integrity typically fail due to lack of signing-power from the current NFT owner. + +Metadata is off-chain. The majority of implementations completely neglect that metadata is mutable. More serious implementations strive to preserve integrity by for example hashing metadata and storing the hash mapped to the tokenId on-chain. However, this approach does not allow for use-case, where metadata besides the asset-identifier, for example traits, "hours played", ... shall be mutable or evolvable. + +### ASSET-BOUND NON-FUNGIBLE TOKENS + +In this standard we propose to + +1. Elevate the concept of representing physical or digital off-chain ASSETS by on-chain ANCHORING the ASSET inseperably into an NFT. +1. Being off-chain in control over the ASSET must mean being on-chain in control over the anchored NFT. +1. (Related) A change in off-chain ownership over the ASSET inevitably should be reflected by a change in on-chain ownership over the anchored NFT, even if the current owner is uncooperative or incapacitated. + +As 2. and 3. indicate, the control/ownership/posession of the ASSET should be the single source of truth, *not* the posession of an NFT. Hence, we propose an ASSET-BOUND NFT, where off-chain CONTROL over the ASSET enforces on-chain CONTROL over the anchored NFT. +Also the proposed ASSET-BOUND NFTs allow to anchor digital metadata inseperably to the ASSET. When the ASSET is a physical asset, this allows to design "phygitals" in their purest form, namely creating a "phygital" asset with a physical and digital component that are inseperable. Note that metadata itself can still change, for instance for "Evolvable NFT". + +We propose to complement the existing transfer control mechanisms of a token according to ERC-721, `Approval` according to [ERC-721](eip-721.md) and `Permit` according to [ERC-4494](eip-4494.md), by another mechanism; ATTESTATION. An ATTESTATION is signed off-chain by the ORACLE and must only be issued when the ORACLE verified that whoever specifies the `to` address or beneficiary address has simultanously been in control over the ASSET. The `to` address of an attestation may be used for Transfers as well as for approvals and other authorizations. + +Transactions authorized via ATTESTATION shall not require signature or approval from neither the `from` (donor, owner, sender) nor `to` (beneficiary, receiver) account, namely making transfers permissionless. Ideally, transaction are signed independent from the ORACLE as well, allowing different scenarios in terms of gas-fees. + +Lastly we want to mention two major side-benefits of using the proposed standard, which drastically lowers hurdles in onboarding web2 users and increase their security; + +- New users, e.g `0xaa...aa` (Fig.1), can use gasless wallets, hence participate in Web3/dApps/DeFi and mint+transfer tokens without ever owning crypto currency. Gas-fees may be paid through a third-party account `0x..gasPayer` (Fig.1). The gas is typically covered by the ASSET issuer, who signs `transferAnchor()` transactions +- Users cannot get scammed. Common attacks (for example wallet-drainer scams) are no longer possible or easily reverted, since only the anchored NFT can be stolen, not the ASSET itself. Also mishaps like transferring the NFT to the wrong account, losing access to an account etc can be mitigated by executing another `transferAnchor()` transaction based on proofing control over the ASSET, namely the physical object. + +### Related work + +We primarily aim to onboard physical or digital ASSETS into dApps, which do not signing-capabilities of their own (contrary to [ERC-5791](eip-5791.md) approach using crypto-chip based solutions). Note that we do not see any restrictions preventing to use ERC-5791 in combination with this standard, as the address of the crypto-chip qualifies as an ANCHOR. + + + +## Specification + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 and RFC 8174. + +### Definitions (alphabetical) + +- **ANCHOR** uniquely identifies the off-chain ASSET, whether it is physical or digital. +- **ANCHOR-TECHNOLOGY** MUST ensure that + - the ANCHOR is inseperable from the ASSET (physically or otherwise) + - an ORACLE can establish PROOF-OF-CONTROL over the ASSET beyond reasonable doubt + - For physical ASSETS, additional [Security considerations for Physical Assets](#security-considerations-for-physical-assets) MUST be taken into account + +- **ASSET** refers to the "thing", being it physical or digital, which is represented through NFTs according to the proposed standard. Typically, an ASSET does not have signing capabilities. + +- **ATTESTATION** is the confirmation that PROOF OF CONTROL was established when specifying the `to` (receiver, beneficiary) address. + +- **PROOF-OF-CONTROL** over the ASSET means owning or otherwise controlling an ASSET. How Proof of Control is established depends on the ASSET and may be implemented using technical, legal or other means. For physical ASSETS, CONTROL is typically verified by proofing physical proximity between a physical ASSET and an input device (for example a smartphone) used to specify the `to` address. + +- An **ORACLE** has signing capabilities. MUST be able to sign ATTESTATIONS off-chain in a way such that signatures can be verified on-chain. + + +### Base Interface + +Every contract compliant to this standard MUST implement the [the proposed standard interface](../assets/eip-6956/contracts/IERC6956.sol), [ERC-721](eip-721.md) and [ERC-165](eip-165.md) interfaces and is subject to [Caveats](#caveats-for-base-interface) below: + +```solidity +// SPDX-License-Identifier: MIT OR CC0-1.0 +pragma solidity ^0.8.18; + +/** + * @title IERC6956 Asset-Bound Non-Fungible Tokens + * @notice Asset-bound Non-Fungible Tokens anchor a token 1:1 to a (physical or digital) asset and token transfers are authorized through attestation of control over the asset + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0xa9cf7635 + */ +interface IERC6956 { + + /** @dev Authorization, typically mapped to authorizationMaps, where each bit indicates whether a particular ERC6956Role is authorized + * Typically used in constructor (hardcoded or params) to set burnAuthorization and approveAuthorization + * Also used in optional updateBurnAuthorization, updateApproveAuthorization, I + */ + enum Authorization { + NONE, // = 0, // None of the above + OWNER, // = (1<0) of the anchored token + */ + event AnchorApproval(address indexed owner, address approved, bytes32 indexed anchor, uint256 tokenId); + + /** + * @notice This emits when the ownership of any anchored NFT changes by any mechanism + * @dev This emits together with tokenId-based ERC-721.Transfer and provides an anchor-perspective on transfers + * @param from The previous owner, address(0) indicate there was none. + * @param to The new owner, address(0) indicates the token is burned + * @param anchor The anchor which is bound to tokenId + * @param tokenId ID (>0) of the anchored token + */ + event AnchorTransfer(address indexed from, address indexed to, bytes32 indexed anchor, uint256 tokenId); + /** + * @notice This emits when an attestation has been used indicating no second attestation with the same attestationHash will be accepted + * @param to The to address specified in the attestation + * @param anchor The anchor specificed in the attestation + * @param attestationHash The hash of the attestation, see ERC-6956 for details + * @param totalUsedAttestationsForAnchor The total number of attestations already used for the particular anchor + */ + event AttestationUse(address indexed to, bytes32 indexed anchor, bytes32 indexed attestationHash, uint256 totalUsedAttestationsForAnchor); + + /** + * @notice This emits when the trust-status of an oracle changes. + * @dev Trusted oracles must explicitely be specified. + * If the last event for a particular oracle-address indicates it's trusted, attestations from this oracle are valid. + * @param oracle Address of the oracle signing attestations + * @param trusted indicating whether this address is trusted (true). Use (false) to no longer trust from an oracle. + */ + event OracleUpdate(address indexed oracle, bool indexed trusted); + + /** + * @notice Returns the 1:1 mapped anchor for a tokenId + * @param tokenId ID (>0) of the anchored token + * @return anchor The anchor bound to tokenId, 0x0 if tokenId does not represent an anchor + */ + function anchorByToken(uint256 tokenId) external view returns (bytes32 anchor); + /** + * @notice Returns the ID of the 1:1 mapped token of an anchor. + * @param anchor The anchor (>0x0) + * @return tokenId ID of the anchored token, 0 if no anchored token exists + */ + function tokenByAnchor(bytes32 anchor) external view returns (uint256 tokenId); + + /** + * @notice The number of attestations already used to modify the state of an anchor or its bound tokens + * @param anchor The anchor(>0) + * @return attestationUses The number of attestation uses for a particular anchor, 0 if anchor is invalid. + */ + function attestationsUsedByAnchor(bytes32 anchor) view external returns (uint256 attestationUses); + /** + * @notice Decodes and returns to-address, anchor and the attestation hash, if the attestation is valid + * @dev MUST throw when + * - Attestation has already been used (an AttestationUse-Event with matching attestationHash was emitted) + * - Attestation is not signed by trusted oracle (the last OracleUpdate-Event for the signer-address does not indicate trust) + * - Attestation is not valid yet or expired + * - [if IERC6956AttestationLimited is implemented] attestationUsagesLeft(attestation.anchor) <= 0 + * - [if IERC6956ValidAnchors is implemented] validAnchors(data) does not return true. + * @param attestation The attestation subject to the format specified in ERC-6956 + * @param data Optional additional data, may contain proof as the first abi-encoded argument when IERC6956ValidAnchors is implemented + * @return to Address where the ownership of an anchored token or approval shall be changed to + * @return anchor The anchor (>0) + * @return attestationHash The attestation hash computed on-chain as `keccak256(attestation)` + */ + function decodeAttestationIfValid(bytes memory attestation, bytes memory data) external view returns (address to, bytes32 anchor, bytes32 attestationHash); + + /** + * @notice Indicates whether any of ASSET, OWNER, ISSUER is authorized to burn + */ + function burnAuthorization() external view returns(Authorization burnAuth); + + /** + * @notice Indicates whether any of ASSET, OWNER, ISSUER is authorized to approve + */ + function approveAuthorization() external view returns(Authorization approveAuth); + + /** + * @notice Corresponds to transferAnchor(bytes,bytes) without additional data + * @param attestation Attestation, refer ERC-6956 for details + */ + function transferAnchor(bytes memory attestation) external; + + /** + * @notice Changes the ownership of an NFT mapped to attestation.anchor to attestation.to address. + * @dev Permissionless, i.e. anybody invoke and sign a transaction. The transfer is authorized through the oracle-signed attestation. + * - Uses decodeAttestationIfValid() + * - When using a centralized "gas-payer" recommended to implement IERC6956AttestationLimited. + * - Matches the behavior of ERC-721.safeTransferFrom(ownerOf[tokenByAnchor(attestation.anchor)], attestation.to, tokenByAnchor(attestation.anchor), ..) and mint an NFT if `tokenByAnchor(anchor)==0`. + * - Throws when attestation.to == ownerOf(tokenByAnchor(attestation.anchor)) + * - Emits AnchorTransfer + * + * @param attestation Attestation, refer EIP-6956 for details + * @param data Additional data, may be used for additional transfer-conditions, may be sent partly or in full in a call to safeTransferFrom + * + */ + function transferAnchor(bytes memory attestation, bytes memory data) external; + + /** + * @notice Corresponds to approveAnchor(bytes,bytes) without additional data + * @param attestation Attestation, refer ERC-6956 for details + */ + function approveAnchor(bytes memory attestation) external; + + /** + * @notice Approves attestation.to the token bound to attestation.anchor. . + * @dev Permissionless, i.e. anybody invoke and sign a transaction. The transfer is authorized through the oracle-signed attestation. + * - Uses decodeAttestationIfValid() + * - When using a centralized "gas-payer" recommended to implement IERC6956AttestationLimited. + * - Matches the behavior of ERC-721.approve(attestation.to, tokenByAnchor(attestation.anchor)). + * - Throws when ASSET is not authorized to approve. + * + * @param attestation Attestation, refer EIP-6956 for details + */ + function approveAnchor(bytes memory attestation, bytes memory data) external; + + /** + * @notice Corresponds to burnAnchor(bytes,bytes) without additional data + * @param attestation Attestation, refer ERC-6956 for details + */ + function burnAnchor(bytes memory attestation) external; + + /** + * @notice Burns the token mapped to attestation.anchor. Uses ERC-721._burn. + * @dev Permissionless, i.e. anybody invoke and sign a transaction. The transfer is authorized through the oracle-signed attestation. + * - Uses decodeAttestationIfValid() + * - When using a centralized "gas-payer" recommended to implement IERC6956AttestationLimited. + * - Throws when ASSET is not authorized to burn + * + * @param attestation Attestation, refer EIP-6956 for details + */ + function burnAnchor(bytes memory attestation, bytes memory data) external; +} +``` + +#### Caveats for Base Interface + +- MUST implement ERC-721 and ERC-165 +- MUST have bidirectional mapping `tokenByAnchor(anchor)` and `anchorByToken(tokenId)`. This implies that a maximum of one token per ANCHOR exists. +- MUST have a mechnism to determine whether an ANCHOR is valid for the contract. RECOMMENDED to implement the proposed [ValidAnchors-Interface](#validanchors-interface) +- MUST implement `decodeAttestationIfValid(attestation, data)` to validate and decode ATTESTATIONS as specified in the [ORACLE-Section](#oracle) + - MUST return `attestation.to`, `attestation.anchor`, `attestation.attestationHash`. + - MUST not modify state, as this function can be used to check an ATTESTATION's validity without redeeming it. + - MUST throw when + - ATTESTATION is not signed from a trusted ORACLE. + - ATTESTATION has expired or is not valid yet + - ATTESTATION has not been reedemed. "Redeemed" being defined in at least one state-changing operation has been authorized through a particular ATTESTATION. + - If [AttestationLimited-Interface](#attestationlimited-interface) implemented: When `attestationUsagesLeft(attestation.to) <= 0` + - If [ValidAnchors-Interface](#validanchors-interface) implemented: When `validAnchor() != true`. + - If [ValidAnchors-Interface](#validanchors-interface) implemented: MUST call `validAnchor(attestation.to, abi.decode('bytes32[]',data))`, meaning the first abi-encoded value in the `data` parameter corresponds to `proof`. +- MUST have a ANCHOR-RELEASED mechanism, indicating whether the anchored NFT is released/transferable. + - Any ANCHOR MUST NOT be released by default. +- MUST extend any ERC-721 token transfer mechanism by: + - MUST throw when `ANCHOR` is not released. + - MUST throw when batchSize > 1, namely no batch transfers are supported with this contract. + - MUST emit `AnchorTransfer(from, to, anchorByToken[tokenId], tokenId)` + +- MUST implement `attestationsUsedByAnchor(anchor)`, returning how many attestations have already been used for a specific anchor. + +- MUST implement the state-changing `transferAnchor(..)`, `burnAnchor(..)`, `approveAnchor(..)` and OPTIONAL MAY implement additional state-changing operations which + - MUST use the `decodeAttestationIfValid()` to determine `to`, `anchor` and `attestationHash` + - MUST redeem each ATTESTATION in the same transaction as any authorized state-changing operation. RECOMMENDED by storing each used `attestationHash` + - MUST increment `attestationsUsedByAnchor[anchor]` + - MUST emit `AttestationUsed` + - `transferAnchor(attestation)` MUST behave and emit events like `ERC-721.safeTransferFrom(ownerOf[tokenByAnchor(attestation.anchor)], attestation.to, tokenByAnchor(attestation.anchor), ..)` and mint an NFT if `tokenByAnchor(anchor)==0`. + +- RECOMMENDED to implement `tokenURI(tokenId)` to return an anchorBased-URI, namely `baseURI/anchor`. This anchoring metadata to ASSET. Before an anchor is not used for the first time, the ANCHOR's mapping to tokenId is unknown. Hence, using the anchor in instead of the tokenId is preferred. + + +### ORACLE + +- MUST provide an ATTESTATION. Below we define the format how an ORACLE testifies that the `to` address of a transfer has been specified under the pre-condition of PROOF-OF-CONTROL associated with the particular ANCHOR being transferred to `to`. +- The ATTESTATION MUST abi-encode the following: + - `to`, MUST be address, specifying the beneficiary, for example the to-address, approved account etc. + - ANCHOR, aka the ASSET identifier, MUST have a 1:1 relation to the ASSET + - `attestationTime`, UTC seconds, time when attestation was signed by ORACLE, + - `validStartTime` UTC seconds, start time of the ATTESTATION's validity timespan + - `validEndTime`, UTC seconds, end time of the ATTESTATION's validity timespan + - `signature`, ETH-signature (65 bytes). Output of an ORACLE signing the `attestationHash = keccak256([to, anchor, attestationTime, validStartTime, validEndTime])`. +- How PROOF-OF-CONTROL is establish in detail through an ANCHOR-TECHNOLOGY is not subject to this standard. Some ORACLE requirements and ANCHOR-TECHNOLOGY requirements when using PHYSICAL ASSETS are outlined in [Security considerations for Physical Assets](#security-considerations-for-physical-assets). + +Minimal Typescript sample to generate an ATTESTATION using ethers library: + +```typescript +export async function minimalAttestationSample() { + // #################################### ACCOUNTS + // Alice shall get the NFT, oracle signs the attestation off-chain + // Oracle needs to be a trusted Oracle of the smart-contract that shall accept the generated attestation + const [alice, oracle] = await ethers.getSigners(); + + // #################################### CREATE AN ATTESTATION + const to = alice.address; + const anchor = '0x4cc52563699fb1e3333b8aab3ecf016f8fd084e6fc48edf8603d83d4c5b97536' + + const attestationTime = Math.floor(Date.now() / 1000.0); // Now in seconds UTC + const validStartTime = 0; + const validEndTime = attestationTime + 15 * 60; // 15 minutes valid from attestation + + const messageHash = ethers.utils.solidityKeccak256( + ["address", "bytes32", "uint256", 'uint256', "uint256"], + [to, anchor, attestationTime, validStartTime, validEndTime] + ); + const sig = await signer.signMessage(ethers.utils.arrayify(messageHash)); + + return ethers.utils.defaultAbiCoder.encode( + ['address', 'bytes32', 'uint256', 'uint256', 'uint256', 'bytes'], + [to, anchor, attestationTime, validStartTime, validEndTime, sig] + ); +} +``` + +### AttestationLimited-Interface + +Every contract compliant to this standard MAY implement the [proposed AttestationLimited interface](../assets/eip-6956/contracts/IERC6956AttestationLimited.sol) and is subject to [Caveats](#caveats-for-attestationlimited-interface) below: + +```solidity +// SPDX-License-Identifier: MIT OR CC0-1.0 +pragma solidity ^0.8.18; +import "./IERC6956.sol"; + +/** + * @title Attestation-limited Asset-Bound NFT + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0x75a2e933 + */ +interface IERC6956AttestationLimited is IERC6956 { + enum AttestationLimitPolicy { + IMMUTABLE, + INCREASE_ONLY, + DECREASE_ONLY, + FLEXIBLE + } + + /// @notice Returns the attestation limit for a particular anchor + /// @dev MUST return the global attestation limit per default + /// and override the global attestation limit in case an anchor-based limit is set + function attestationLimit(bytes32 anchor) external view returns (uint256 limit); + + /// @notice Returns number of attestations left for a particular anchor + /// @dev Is computed by comparing the attestationsUsedByAnchor(anchor) and the current attestation limit + /// (current limited emitted via GlobalAttestationLimitUpdate or AttestationLimt events) + function attestationUsagesLeft(bytes32 anchor) external view returns (uint256 nrTransfersLeft); + + /// @notice Indicates the policy, in which direction attestation limits can be updated (globally or per anchor) + function attestationLimitPolicy() external view returns (AttestationLimitPolicy policy); + + /// @notice This emits when the global attestation limt is updated + event GlobalAttestationLimitUpdate(uint256 indexed transferLimit, address updatedBy); + + /// @notice This emits when an anchor-specific attestation limit is updated + event AttestationLimitUpdate(bytes32 indexed anchor, uint256 indexed tokenId, uint256 indexed transferLimit, address updatedBy); + + /// @dev This emits in the transaction, where attestationUsagesLeft becomes 0 + event AttestationLimitReached(bytes32 indexed anchor, uint256 indexed tokenId, uint256 indexed transferLimit); +} +``` + +#### Caveats for AttestationLimited-Interface + +- MUST extend the proposed standard interface +- MUST define one of the above listed AttestationLimit update policies and expose it via `attestationLimitPolicy()` + - MUST support different update modes, namely FIXED, INCREASE_ONLY, DECREASE_ONLY, FLEXIBLE (= INCREASABLE and DECREASABLE) + - RECOMMENDED to have a global transfer limit, which can be overwritten on a token-basis (when `attestationLimitPolicy() != FIXED`) +- MUST implement `attestationLimit(anchor)`, specifying how often an ANCHOR can be transferred in total. Changes in the return value MUST reflect the AttestationLimit-Policy. +- MUST implement `attestationUsagesLeft(anchor)`, returning the number of usages left (namely `attestationLimit(anchor)-attestationsUsedByAnchor[anchor]`) for a particular anchor + + +### Floatable-Interface + +Every contract compliant to this extension MAY implement the proposed [Floatable interface](../assets/eip-6956/contracts/IERC6956Floatable.sol) and is subject to [Caveats](#caveats-for-floatable-interface) below: + +```solidity +// SPDX-License-Identifier: MIT OR CC0-1.0 +pragma solidity ^0.8.18; +import "./IERC6956.sol"; + +/** + * @title Floatable Asset-Bound NFT + * @notice A floatable Asset-Bound NFT can (temporarily) be transferred without attestation + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0xf82773f7 + */ +interface IERC6956Floatable is IERC6956 { + enum FloatState { + Default, // 0, inherits from floatAll + Floating, // 1 + Anchored // 2 + } + + /// @notice Indicates that an anchor-specific floating state changed + event FloatingStateChange(bytes32 indexed anchor, uint256 indexed tokenId, FloatState isFloating, address operator); + /// @notice Emits when FloatingAuthorization is changed. + event FloatingAuthorizationChange(Authorization startAuthorization, Authorization stopAuthorization, address maintainer); + /// @notice Emits, when the default floating state is changed + event FloatingAllStateChange(bool areFloating, address operator); + + /// @notice Indicates whether an anchored token is floating, namely can be transferred without attestation + function floating(bytes32 anchor) external view returns (bool); + + /// @notice Indicates whether any of OWNER, ISSUER, (ASSET) is allowed to start floating + function floatStartAuthorization() external view returns (Authorization canStartFloating); + + /// @notice Indicates whether any of OWNER, ISSUER, (ASSET) is allowed to stop floating + function floatStopAuthorization() external view returns (Authorization canStartFloating); + + /** + * @notice Allows to override or reset to floatAll-behavior per anchor + * @dev Must throw when newState == Floating and floatStartAuthorization does not authorize msg.sender + * @dev Must throw when newState == Anchored and floatStopAuthorization does not authorize msg.sender + * @param anchor The anchor, whose anchored token shall override default behavior + * @param newState Override-State. If set to Default, the anchor will behave like floatAll + */ + function float(bytes32 anchor, FloatState newState) external; +} +``` + + +#### Caveats for Floatable-Interface + +If `floating(anchor)` returns true, the token identified by `tokenByAnchor(anchor)` MUST be transferable without attestation, typically authorized via `ERC721.isApprovedOrOwner(msg.sender, tokenId)` + +### ValidAnchors-Interface + +Every contract compliant to this extension MAY implement the proposed [ValidAnchors interface](../assets/eip-6956/contracts/IERC6956ValidAnchors.sol) and is subject to [Caveats](#caveats-for-validanchors-interface) below: + +```solidity +// SPDX-License-Identifier: MIT OR CC0-1.0 +pragma solidity ^0.8.18; +import "./IERC6956.sol"; + +/** + * @title Anchor-validating Asset-Bound NFT + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0x051c9bd8 + */ +interface IERC6956ValidAnchors is IERC6956 { + /** + * @notice Emits when the valid anchors for the contract are updated. + * @param validAnchorHash Hash representing all valid anchors. Typically Root of Merkle-Tree + * @param maintainer msg.sender when updating the hash + */ + event ValidAnchorsUpdate(bytes32 indexed validAnchorHash, address indexed maintainer); + + /** + * @notice Indicates whether an anchor is valid in the present contract + * @dev Typically implemented via MerkleTrees, where proof is used to verify anchor is part of the MerkleTree + * MUST return false when no ValidAnchorsUpdate-event has been emitted yet + * @param anchor The anchor in question + * @param proof Proof that the anchor is valid, typically MerkleProof + * @return isValid True, when anchor and proof can be verified against validAnchorHash (emitted via ValidAnchorsUpdate-event) + */ + function anchorValid(bytes32 anchor, bytes32[] memory proof) external view returns (bool isValid); +} +``` + +#### Caveats for ValidAnchors-Interface + +- MUST implement `validAnchor(anchor, proof)` which returns true when anchor is valid, namely MerkleProof is correct, false otherwise. + + +## Rationale + +**Why do you use an anchor<>tokenId mapping and not simply use tokenIds directly?** +Especially for collectable use-cases, special or sequential tokenIds (for example low numbers), have value. Holders may be proud to have claimed tokenId=1 respectively the off-chain ASSET with tokenId=1 may increase in value, because it was the first ever claimed. Or an Issuer may want to address the first 100 owners who claimed their ASSET-BOUND NFT. While these use-cases technically can certainly be covered by observing the blockchain state-changes, we consider reflecting the order in the tokenIds to be the user-friendly way. Please refer [Security considerations](#security-considerations) on why sequential anchors shall be avoided. + +**Why is tokenId=0 and anchor=0x0 invalid?** +For gas efficiency. This allows to omit checks and state-variables for the existence of a token or anchor, since mappings of a non-existent key return 0 and cannot be easily distinguised from anchor=0 or tokenId=0. + +**ASSETS are often batch-produced with the goal of identical properties, for example a batch of automotive spare parts. Why should do you extend ERC-721 and not Multi-Token standards?** +Even if a (physical) ASSET is mass produced with fungible characteristics, each ASSET has an individual property/ownership graph and thus shall be represented in a non-fungible way. Hence this EIP follows the design decision that ASSET (represented via a unique asset identifier called ANCHOR) and token are always mapped 1-1 and not 1-N, so that a token represents the individual property graph of the ASSET. + +**Why is there a burnAnchor() and approveAnchor()?** +Due to the permissionless nature ASSET-BOUND NFTs can even be transferred to or from any address. This includes arbitrary and randomly generated accounts (where the private key is unknown) and smart-contracts which would traditionally not support ERC-721 NFTs. Following that owning the ASSET must be equivalent to owning the NFT, this means that we also need to support ERC-721 operations like approval and burning in such instances through authorizing the operations with an attestation. + +**Implementation alternatives considered** Soulbound burn+mint combination, for example through Consensual Soulbound Tokens ([ERC-5484](eip-5484.md)). Disregarded because appearance is highly dubious, when the same asset is represented through multiple tokens over time. An predecessor of this EIP has used this approach and can be found deployed to Mumbai Testnet under address `0xd04c443913f9ddcfea72c38fed2d128a3ecd719e`. + +**When should I implement AttestationLimited-Interface** +Naturally, when your use-case requires each ASSET being transferable only a limited number of times. But also for security reasons, see [Security Considerations](#security-considerations) + +**Why is there the `IERC6956Floatable.FloatState` enum?** In order to allow gas-efficient implementation of floatAll(), which can be overruled by anchor-based floatability in all combinations. (See rationale for tokenId=0 above). + +**Why is there no `floating(tokenId)` function?** +This would behave identically to an `isTransferable(tokenId,...)` mechanism proposed in many other EIPs (refer e.g. [ERC-6454](eip-6454.md)). Further, the proposed `floating(anchorByToken(tokenId))` can be used. + +**Why are there different FloatingAuthorizations for start and stop?** +Depending on the use-case, different roles should be able to start or stop floating. Note that for many applications the ISSUER may want to have control over the floatability of the collection. + + +### Example Use Cases and recommended combination of interfaces + +Posession based use cases are covered by the standard interface `IERC6956`: The holder of ASSET is in posession of ASSET. Possession is an important social and economical tool: In many sports games posession of ASSET, commonly referred to as "the ball", is of essence. Posession can come with certain obligations and privileges. Ownership over an ASSET can come with rights and benefits as well as being burdened with liens and obligations. For example, an owned ASSET can be used for collateral, can be rented or can even yield a return. Example use-cases are + +- **Posession based token gating:** Club guest in posession of limited T-Shirt (ASSET) gets a token which allows him to open the door to the VIP lounge. + +- **Posession based digital twin:** A gamer is in posession of a pair of physical sneakers (ASSET), and gets a digital twin (NFT) to wear them in metaverse. + +- **Scarce posession based digital twin:** The producer of the sneakers (ASSET) decided that the product includes a limit of 5 digital twins (NFTs), to create scarcity. + +- **Lendable digital twin:** The gamer can lend his sneaker-tokens (NFT) to a friend in the metaverse, so that the friend can run faster. + +- **Securing ownership from theft:** If ASSET is owned off-chain, the owner wants to secure the anchored NFT, namely not allow transfers to prevent theft or recover the NFT easily through the ASSET. + +- **Selling a house with a mortage:** The owner holds NFT as proof of ownership. The DeFi-Bank finances the house and puts a lock on the transfer of NFT. Allow Transfers of the NFT require the mortage to be paid off. Selling the ASSET (house) off-chain will be impossible, as it's no longer possible to finance the house. + +- **Selling a house with a lease:** A lease contract puts a lien on an ASSET's anchored NFT. The old owner removes the lock, the new owner buys and refinances the house. Transfer of NFT will also transfer the obligations and benefits of the lien to the new owner. As a lien-interface, the proposed EIP can for example be extended with [ERC-5604](eip-5604.md) + +- **Buying a brand new car with downpayment:** A buyer configures a car and provides a downpayment, for a car that will have an ANCHOR. As long as the car is not produced, the NFT can float and be traded on NFT market places. The owner of the NFT at time of delivery of the ASSET has the the permission to pick up the car and the obligation to pay full price. + +- **Buying a barrel of oil by forward transaction:** A buyer buys an oil option on a forward contract for one barrel of oil (ASSET). On maturity date the buyer has the obligation to pick up the oil. + +The use case matrix below shows which extensions and settings must (additionally to `IERC6956`!) be implemented for the example use-cases together with relevant configurations. + +Note that for `Lockable` listed in the table below, the proposed EIP can be extended with any Lock- or Lien-Mechanism known to extend for ERC-721. Suitable extensions to achieve `Lockable` are for example [ERC-5058](eip-5058.md) or [ERC-5753](eip-5753.md). We recommend to verify whether a token is locked in the `_beforeTokenTransfer()`-hook, as this is called from `safeTransferFrom()` as well as `transferAnchor()`, hence suitable to block "standard" ERC-721 transfers as well as the proposed attestation-based transfers. + +| Use Case | approveAuthorization | burnAuthorization | `IERC6956Floatable` | `IERC6956AttestationLimited` | Lockable | +|---------------|---|---|---|---|---| +| **Managing Posession** | +| Token gating | ASSET | ANY | incompatible | - | - | +| Digital twin | ASSET | ANY | incompatible | - | - | +| Scarce digital twin | ASSET | ANY | incompatible | required | - | +| Lendable digital twin | OWNER_AND_ASSET | ASSET | required | - | - | +| **Managing Ownership** | +| Securing ownership from theft | OWNER or OWNER_AND_ASSET | ANY | optional | - | required | +| Selling an house with a mortage | ASSET or OWNER_AND_ASSET | ANY | optional | optional | required | +| Selling a house with a lease | ASSET or OWNER_AND_ASSET | ANY | optional | optional | required | +| Buying a brand new car with downpayment | ASSET or OWNER_AND_ASSET | ANY | optional | optional | required | +| Buying a barrel of oil by forward transaction | ASSET or OWNER_AND_ASSET | ANY | optional | optional | required | + +Legend: + +- required ... we don't see a way how to implement the use-case without it +- incompatible ... this MUSTN'T be implemented, as it is a security risk for the use-case +- optional ... this MAY optionally be implemented + +## Backwards Compatibility + + + +No backward compatibility issues found. + +This EIP is fully compatible with ERC-721 and (when extended with the `IERC6956Floatable`-interface) corresponds to the well-known ERC-721 behavior with an additional authorization-mechanism via attestations. Therefore we recommend - especially for physical assets - to use the present EIP instead of ERC-721 and amend it with extensions designed for ERC-721. + +However, it is RECOMMENDED to extend implementations of the proposed standard with an interface indicating transferability of NFTs for market places. Examples include [ERC-6454](eip-6454.md) and [ERC-5484](eip-5484.md). + +Many ERC-721 extensions suggest to add additional throw-conditions to transfer methods. This standard is fully compatible, as + +- The often-used ERC-721 `_beforeTokenTransfer()` hook must be called for all transfers including attestation-authorized transfers. +- A `_beforeAnchorUse()` hook is suggested in the reference implementation, which only is called when using attestation as authorization. + +## Test Cases + +Test cases are available: + +- For only implementing [the proposed standard interface](../assets/eip-6956/contracts/IERC6956.sol) can be found [here](../assets/eip-6956/test/ERC6956.ts) +- For implementing [the proposed standard interface](../assets/eip-6956/contracts/IERC6956.sol), [the Floatable extension](../assets/eip-6956/contracts/IERC6956Floatable.sol), [the ValidAnchors extension](../assets/eip-6956/contracts/IERC6956ValidAnchors.sol) and [the AttestationLimited extension](../assets/eip-6956/contracts/IERC6956AttestationLimited.sol) can be found [here](../assets/eip-6956/test/ERC6956Full.ts) + +## Reference Implementation + +- Minimal implementation, only supporting [the proposed standard interface](../assets/eip-6956/contracts/IERC6956.sol) can be found [here](../assets/eip-6956/contracts/ERC6956.sol) +- Full implementation, with support for [the proposed standard interface](../assets/eip-6956/contracts/IERC6956.sol), [the Floatable extension](../assets/eip-6956/contracts/IERC6956Floatable.sol), [the ValidAnchors extension](../assets/eip-6956/contracts/IERC6956ValidAnchors.sol) and [the AttestationLimited extension](../assets/eip-6956/contracts/IERC6956AttestationLimited.sol) can be found [here](../assets/eip-6956/contracts/ERC6956Full.sol) + +## Security Considerations + + + +**If the asset is stolen, does this mean the thief has control over the NFT?** +Yes.The standard aims to anchor an NFT to the asset inseperably and unconditionally. This includes reflecting theft, as the ORACLE will testify that PROOF-OF-CONTROL over the ASSET is established. The ORACLE does not testify whether the controller is the legitimate owner, +Note that this may even be a benefit. If the thief (or somebody receiving the asset from the thief) should interact with the anchor, an on-chain address of somebody connected to the crime (directly or another victim) becomes known. This can be a valuable starting point for investigation. +Also note that the proposed standard can be combined with any lock-mechanism, which could lock attestation-based action temporarily or permamently (after mint). + +**How to use AttestationLimits to avoid fund-draining** +A central security mechanism in blockchain applications are gas fees. Gas fees ensure that executing a high number of transactions get penalized, hence all DoS or other large-scale attacks are discouraged. Due to the permissionless nature of attestation-authorized operations, many use-cases will arise, where the issuer of the ASSET (which normally is also the issuer of the ASSET-BOUND NFT) will pay for all transactions - contrary to the well-known ERC-721 behavior, where either from- or to-address are paying. So a user with malicious intent may just let the ORACLE approve PROOF-OF-CONTROL multiple times with specifying alternating account addresses. These ATTESTATIONS will be handed to the central gas-payer, who will execute them in a permissionless way, paying gas-fees for each transactions. This effectively drains the funds from the gas-payer, making the system unusable as soon as the gas-payer can no longer pay for transactions. + +**Why do you recommend hashing serial numbers over using them plain?** +Using any sequential identifier allows to at least conclude of the number between the lowest and highest ever used serial number. This therefore provides good indication over the total number of assets on the market. While a limited number of assets is often desireable for collectables, publishing exact production numbers of assets is undesireable for most industries, as it equals to publishing sales/revenue numbers per product group, which is often considered confidential. Within supply chains, serial numbers are often mandatory due to their range-based processing capability. The simplest approach to allow using physical serial numbers and still obfuscating the actual number of assets is through hashing/encryption of the serial number. + +**Why is anchor-validation needed, why not simply trust the oracle to attest only valid anchors?** +The oracle testifies PROOF-OF-CONTROL. As the ORACLE has to know the merkle-tree of valid anchors, it could also modify the merkle-tree with malicious intent. Therefore, having an on-chain verification, whether the original merkle-tree has been used, is needed. Even if the oracle gets compromised, it should not have the power to introduce new anchors. This is achieved by requiring that the oracle knows the merkle-tree, but updateValidAnchors() can only be called by a maintainer. Note that the oracle must not be the maintainer. As a consequence, care shall be taken off-chain, in order to ensure that compromising one system-part not automatically compromises oracle and maintainer accounts. + +**Why do you use merkle-trees for anchor-validation?** +For security- and gas-reasons. Except for limited collections, anchors will typically be added over time, e.g. when a new batch of the asset is produced or issued. While it is already ineffective to store all available anchors on-chain gas-wise, publishing all anchors would also expose the total number of assets. When using the data from anchor-updates one could even deduce the production capabilities of that asset, which is usually considered confidential information. + +**Assume you have N anchors. If all anchored NFTs are minted, what use is a merkle-tree?** +If all anchored NFTs are minted this implies that all anchors have been published and could be gathered on-chain. Consequently, the merkle-tree can be reconstructed. While this may not be an issue for many use cases (all supported anchors are minted anyway), we still recommend to add one "salt-leave" to the merkle-tree, characterized in that the ORACLE will never issue an attestation for an ANCHOR matching that salt-leave. Therefore, even if all N anchors are + +### Security Considerations for PHYSICAL ASSETS + +In case the ASSET is a physical object, good or property, the following ADDITIONAL specifications MUST be satisifed: + +#### ORACLE for Physical Anchors + +- Issuing an ATTESTATION requires that the ORACLE + - MUST proof physical proximity between an input device (for example smartphone) specifying the `to` address and a particular physical ANCHOR and it's associated physical object. Typical acceptable proximity is ranges between some millimeters to several meters. + - The physical presence MUST be verified beyond reasonable doubt, in particular the employed method + - MUST be robust against duplication or reproduction attempts of the physical ANCHOR, + - MUST be robust against spoofing (for example presentation attacks) etc. + - MUST be implemented under the assumption that the party defining the `to` address has malicious intent and to acquire false ATTESTATION, without currently or ever having access to the physical object comprising the physical ANCHOR. + +#### Physical ASSET + +- MUST comprise an ANCHOR, acting as the unique physical object identifier, typically a serial number (plain (NOT RECOMMENDED) or hashed (RECOMMENDED)) +- MUST comprise a physical security device, marking or any other feature that enables proofing physical presence for ATTESTATION through the ORACLE +- Is RECOMMENDED to employ ANCHOR-TECHNOLOGIES featuring irreproducible security features. +- In general it is NOT RECOMMENDED to employ ANCHOR-TECHNOLOGIES that can easily be replicated (for example barcodes, "ordinary" NFC chips, .. ). Replication includes physical and digital replication. + + + +### Security Considerations for DIGITAL ASSETS + + + + + +## Copyright + +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/eip-6956/.gitignore b/assets/eip-6956/.gitignore new file mode 100644 index 00000000000000..74956f8d80a992 --- /dev/null +++ b/assets/eip-6956/.gitignore @@ -0,0 +1,8 @@ +node_modules + +#Hardhat files +cache +artifacts +typechain* + +package-lock.json diff --git a/assets/eip-6956/LICENSE.md b/assets/eip-6956/LICENSE.md new file mode 100644 index 00000000000000..1d853863a3b82b --- /dev/null +++ b/assets/eip-6956/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Authentic Vision GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/assets/eip-6956/README.md b/assets/eip-6956/README.md new file mode 100644 index 00000000000000..dffbad5b12688b --- /dev/null +++ b/assets/eip-6956/README.md @@ -0,0 +1,12 @@ +# ERCxxxx Reference implementation +This reference implementation is [MIT](LICENSE.md) licensed and can therefore be freely used in any project. + +## Getting started +From this directory, run + +``` +npm install && npx hardhat test +``` + + + diff --git a/assets/eip-6956/contracts/ERC6956.sol b/assets/eip-6956/contracts/ERC6956.sol new file mode 100644 index 00000000000000..39543258b1fae4 --- /dev/null +++ b/assets/eip-6956/contracts/ERC6956.sol @@ -0,0 +1,491 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.18; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/security/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; + +import "./IERC6956.sol"; + +/** Used for several authorization mechansims, e.g. who can burn, who can set approval, ... + * @dev Specifying the role in the ecosystem. Used in conjunction with IERC6956.Authorization + */ +enum Role { + OWNER, // =0, The owner of the digital token + ISSUER, // =1, The issuer (contract) of the tokens, typically represented through a MAINTAINER_ROLE, the contract owner etc. + ASSET, // =2, The asset identified by the anchor + INVALID // =3, Reserved, do not use. +} + +/** + * @title ASSET-BOUND NFT minimal reference implementation + * @author Thomas Bergmueller (@tbergmueller) + * + * @dev Error messages + * ``` + * ERROR | Message + * ------|------------------------------------------------------------------- + * E1 | Only maintainer allowed + * E2 | No permission to burn + * E3 | Token does not exist, call transferAnchor first to mint + * E4 | batchSize must be 1 + * E5 | Token not transferable + * E6 | Token already owned + * E7 | Not authorized based on ERC6956Authorization + * E8 | Attestation not signed by trusted oracle + * E9 | Attestation already used + * E10 | Attestation not valid yet + * E11 | Attestation expired + * E12 | Attestation expired (contract limit) + * E13 | Invalid signature length + * E14-20| Reserved for future use + * ``` + */ +contract ERC6956 is + ERC721, + ERC721Enumerable, + ERC721Burnable, + IERC6956 +{ + using Counters for Counters.Counter; + + mapping(bytes32 => bool) internal _anchorIsReleased; // currently released anchors. Per default, all anchors are dropped, i.e. 1:1 bound + + mapping(address => bool) public maintainers; + + /// @notice Resolves tokenID to anchor. Inverse of tokenByAnchor + mapping(uint256 => bytes32) public anchorByToken; + + /// @notice Resolves Anchor to tokenID. Inverse of anchorByToken + mapping(bytes32 => uint256) public tokenByAnchor; + + mapping(address => bool) private _trustedOracles; + + /// @dev stores the anchors for each attestation + mapping(bytes32 => bytes32) private _anchorByUsedAttestation; + + /// @dev stores handed-back tokens (via burn) + mapping (bytes32 => uint256) private _burnedTokensByAnchor; + + + /** + * @dev Counter to keep track of issued tokens + */ + Counters.Counter private _tokenIdCounter; + + /// @dev Default validity timespan of attestation. In validateAttestation the attestationTime is checked for MIN(defaultAttestationvalidity, attestation.expiry) + uint256 public maxAttestationExpireTime = 5*60; // 5min valid per default + + Authorization public burnAuthorization; + Authorization public approveAuthorization; + + + /// @dev Records the number of transfers done for each attestation + mapping(bytes32 => uint256) public attestationsUsedByAnchor; + + modifier onlyMaintainer() { + require(isMaintainer(msg.sender), "ERC6956-E1"); + _; + } + + /** + * @notice Behaves like ERC721 burn() for wallet-cleaning purposes. Note only the tokenId (as a wrapper) is burned, not the ASSET represented by the ANCHOR. + * @dev + * - tokenId is remembered for the anchor, to ensure a later transferAnchor(), which would mint, assigns the same tokenId. This ensures strict 1:1 relation + * - For burning, the anchor needs to be released. This forced release FOR BURNING ONLY is allowed for owner() or approvedOwner(). + * + * @param tokenId The token that shall be burned + */ + function burn(uint256 tokenId) public override + { + // remember the tokenId of burned tokens, s.t. one can issue the token with the same number again + bytes32 anchor = anchorByToken[tokenId]; + require(_roleBasedAuthorization(anchor, createAuthorizationMap(burnAuthorization)), "ERC6956-E2"); + _burn(tokenId); + } + + function burnAnchor(bytes memory attestation, bytes memory data) public virtual + authorized(Role.ASSET, createAuthorizationMap(burnAuthorization)) + { + address to; + bytes32 anchor; + bytes32 attestationHash; + (to, anchor, attestationHash) = decodeAttestationIfValid(attestation, data); + _commitAttestation(to, anchor, attestationHash); + uint256 tokenId = tokenByAnchor[anchor]; + // remember the tokenId of burned tokens, s.t. one can issue the token with the same number again + _burn(tokenId); + } + + function burnAnchor(bytes memory attestation) public virtual { + return burnAnchor(attestation, ""); + } + + function approveAnchor(bytes memory attestation, bytes memory data) public virtual + authorized(Role.ASSET, createAuthorizationMap(approveAuthorization)) + { + address to; + bytes32 anchor; + bytes32 attestationHash; + (to, anchor, attestationHash) = decodeAttestationIfValid(attestation, data); + _commitAttestation(to, anchor, attestationHash); + require(tokenByAnchor[anchor]>0, "ERC6956-E3"); + _approve(to, tokenByAnchor[anchor]); + } + + // approveAuth == ISSUER does not really make sense.. so no separate implementation, since ERC-721.approve already implies owner... + + function approve(address to, uint256 tokenId) public virtual override(ERC721,IERC721) + authorized(Role.OWNER, createAuthorizationMap(approveAuthorization)) + { + super.approve(to, tokenId); + } + + function approveAnchor(bytes memory attestation) public virtual { + return approveAnchor(attestation, ""); + } + + /** + * @notice Adds or removes a trusted oracle, used when verifying signatures in `decodeAttestationIfValid()` + * @dev Emits OracleUpdate + * @param oracle address of oracle + * @param doTrust true to add, false to remove + */ + function updateOracle(address oracle, bool doTrust) public + onlyMaintainer() + { + _trustedOracles[oracle] = doTrust; + emit OracleUpdate(oracle, doTrust); + } + + /** + * @dev A very simple function wich MUST return false, when `a` is not a maintainer + * When derived contracts extend ERC6956 contract, this function may be overridden + * e.g. by using AccessControl, onlyOwner or other common mechanisms + * + * Having this simple mechanism in the reference implementation ensures that the reference + * implementation is fully ERC-6956 compatible + */ + function isMaintainer(address a) public virtual view returns (bool) { + return maintainers[a]; + } + + + function createAuthorizationMap(Authorization _auth) public pure returns (uint256) { + uint256 authMap = 0; + if(_auth == Authorization.OWNER + || _auth == Authorization.OWNER_AND_ASSET + || _auth == Authorization.OWNER_AND_ISSUER + || _auth == Authorization.ALL) { + authMap |= uint256(1< 0) { + from = ownerOf(fromToken); + require(from != to, "ERC6956-E6"); + _safeTransfer(from, to, fromToken, ""); + } else { + _safeMint(to, anchor); + } + } + + function transferAnchor(bytes memory attestation) public virtual { + return transferAnchor(attestation, ""); + } + + + function hasAuthorization(Role _role, uint256 _auth ) public pure returns (bool) { + uint256 result = uint256(_auth & (1 << uint256(_role))); + return result > 0; + } + + modifier authorized(Role _role, uint256 _authMap) { + require(hasAuthorization(_role, _authMap), "ERC6956-E7"); + _; + } + + // The following functions are overrides required by Solidity, EIP-165. + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override(ERC721, ERC721Enumerable) + returns (bool) + { + return + interfaceId == type(IERC6956).interfaceId || + super.supportsInterface(interfaceId); + } + + /** + * @notice Returns whether a certain address is registered as trusted oracle, i.e. attestations signed by this address are accepted in `decodeAttestationIfValid` + * @dev This function may be overwritten when extending ERC-6956, e.g. when other oracle-registration mechanics are used + * @param oracleAddress Address of the oracle in question + * @return isTrusted True, if oracle is trusted + */ + function isTrustedOracle(address oracleAddress) public virtual view returns (bool isTrusted) { + return _trustedOracles[oracleAddress]; + } + + + function decodeAttestationIfValid(bytes memory attestation, bytes memory data) public view returns (address to, bytes32 anchor, bytes32 attestationHash) { + uint256 attestationTime; + uint256 validStartTime; + uint256 validEndTime; + bytes memory signature; + bytes32[] memory proof; + + attestationHash = keccak256(attestation); + (to, anchor, attestationTime, validStartTime, validEndTime, signature) = abi.decode(attestation, (address, bytes32, uint256, uint256, uint256, bytes)); + + bytes32 messageHash = keccak256(abi.encodePacked(to, anchor, attestationTime, validStartTime, validEndTime, proof)); + address signer = _extractSigner(messageHash, signature); + + // Check if from trusted oracle + require(isTrustedOracle(signer), "ERC6956-E8"); + require(_anchorByUsedAttestation[attestationHash] <= 0, "ERC6956-E9"); + + // Check expiry + uint256 timestamp = block.timestamp; + require(timestamp > validStartTime, "ERC6956-E10"); + require(attestationTime + maxAttestationExpireTime > block.timestamp, "ERC6956-E11"); + require(validEndTime > block.timestamp, "ERC6956-E112"); + + + // Calling hook! + _beforeAttestationUse(anchor, to, data); + return(to, anchor, attestationHash); + } + + /// @notice Compatible with ERC721.tokenURI(). Returns {baseURI}{anchor} + /// @dev Returns when called for tokenId=5, baseURI=https://myurl.com/collection/ and anchorByToken[5] = 0x12345 + /// Example: https://myurl.com/collection/0x12345 + /// Works for non-burned tokens / active-Anchors only. + /// Anchor-based tokenURIs are needed as an anchor's corresponding tokenId is only known after mint. + /// @param tokenId TokenID + /// @return tokenURI Returns the Uniform Resource Identifier (URI) for `tokenId` token. + function tokenURI(uint256 tokenId) public view override returns (string memory) { + bytes32 anchor = anchorByToken[tokenId]; + string memory anchorString = Strings.toHexString(uint256(anchor)); + return bytes(_baseURI()).length > 0 ? string(abi.encodePacked(_baseURI(), anchorString)) : ""; + } + + function _baseURI() internal view virtual override(ERC721) returns (string memory) { + return _baseUri; + } + + /** + * @dev Base URI, MUST end with a slash. Will be used as `{baseURI}{tokenId}` in tokenURI() function + */ + string internal _baseUri = ""; // needs to end with '/' + + /// @notice Set a new BaseURI. Can be used with dynamic NFTs that have server APIs, IPFS-buckets + /// or any other suitable system. Refer tokenURI(tokenId) for anchor-based or tokenId-based format. + /// @param tokenBaseURI The token base-URI. Must end with slash '/'. + function updateBaseURI(string calldata tokenBaseURI) public onlyMaintainer() { + _baseUri = tokenBaseURI; + } + event BurnAuthorizationChange(Authorization burnAuth, address indexed maintainer); + + function updateBurnAuthorization(Authorization burnAuth) public onlyMaintainer() { + burnAuthorization = burnAuth; + emit BurnAuthorizationChange(burnAuth, msg.sender); + // TODO event + } + + event ApproveAuthorizationChange(Authorization approveAuth, address indexed maintainer); + + function updateApproveAuthorization(Authorization approveAuth) public onlyMaintainer() { + approveAuthorization = approveAuth; + emit ApproveAuthorizationChange(approveAuth, msg.sender); + + // TODO event + } + + constructor(string memory _name, string memory _symbol) + ERC721(_name, _symbol) { + maintainers[msg.sender] = true; // deployer is automatically maintainer + // Indicates general float-ability, i.e. whether anchors can be digitally dropped and released + + // OWNER and ASSET shall normally be in sync anyway, so this is reasonable default + // authorization for approve and burn, as it mimicks ERC-721 behavior + burnAuthorization = Authorization.OWNER_AND_ASSET; + approveAuthorization = Authorization.OWNER_AND_ASSET; + } + + /* + ########################## SIGNATURE MAGIC, + ########################## adapted from https://solidity-by-example.org/signature/ + */ + /** + * Returns the signer of a message. + * + * OFF-CHAIN: + * const [alice] = ethers.getSigners(); // = 0x3c44... + * const messageHash = ethers.utils.solidityKeccak256(["address", "bytes32"], [a, b]); + const sig = await alice.signMessage(ethers.utils.arrayify(messageHash)); + + ONCHAIN In this contract, call from + ``` + function (address a, bytes32 b, bytes memory sig) { + messageHash = keccak256(abi.encodePacked(to, b)); + signer = extractSigner(messageHash, sig); // signer will be 0x3c44... + } + ``` * + * @param messageHash A keccak25(abi.encodePacked(...)) hash + * @param sig Signature (length 65 bytes) + * + * @return The signer + */ + function _extractSigner(bytes32 messageHash, bytes memory sig) internal pure returns (address) { + require(sig.length == 65, "ERC6956-E13"); + /* + Signature is produced by signing a keccak256 hash with the following format: + "\x19Ethereum Signed Message\n" + len(msg) + msg + */ + bytes32 ethSignedMessageHash = keccak256(abi.encodePacked("\x19Ethereum Signed Message:\n32", messageHash)); + + bytes32 r; + bytes32 s; + uint8 v; + + // Extract the r, s, and v parameters from the signature + assembly { + r := mload(add(sig, 32)) + s := mload(add(sig, 64)) + v := byte(0, mload(add(sig, 96))) + } + + // Ensure the v parameter is either 27 or 28 + // TODO is this needed? + if (v < 27) { + v += 27; + } + + // Recover the public key from the signature and message hash + // and convert it to an address + address signer = ecrecover(ethSignedMessageHash, v, r, s); + return signer; + } +} diff --git a/assets/eip-6956/contracts/ERC6956Full.sol b/assets/eip-6956/contracts/ERC6956Full.sol new file mode 100644 index 00000000000000..d7e67a22c55009 --- /dev/null +++ b/assets/eip-6956/contracts/ERC6956Full.sol @@ -0,0 +1,206 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.18; + +import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol"; +import "@openzeppelin/contracts/security/Pausable.sol"; +import "@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol"; +import "@openzeppelin/contracts/utils/Counters.sol"; +import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol"; + +import "./ERC6956.sol"; +import "./IERC6956AttestationLimited.sol"; +import "./IERC6956Floatable.sol"; +import "./IERC6956ValidAnchors.sol"; + +/** + * @title ASSET-BOUND NFT implementation with all interfaces + * @author Thomas Bergmueller (@tbergmueller) + * @notice Extends ERC6956.sol with additional interfaces and functionality + * + * @dev Error-codes + * ERROR | Message + * ------|------------------------------------------------------------------- + * E1-20 | See ERC6956.sol + * E21 | No permission to start floating + * E22 | No permission to stop floating + * E23 | allowFloating can only be called when changing floating state + * E24 | No attested transfers left + * E25 | data must contain merkle-proof + * E26 | Anchor not valid + * E27 | Updating attestedTransferLimit violates policy + */ +contract ERC6956Full is ERC6956, IERC6956AttestationLimited, IERC6956Floatable, IERC6956ValidAnchors { + Authorization public floatStartAuthorization; + Authorization public floatStopAuthorization; + + /// ############################################################################################################################### + /// ############################################################################################## IERC6956AttestedTransferLimited + /// ############################################################################################################################### + + mapping(bytes32 => uint256) public attestedTransferLimitByAnchor; + mapping(bytes32 => FloatState) public floatingStateByAnchor; + + uint256 public globalAttestedTransferLimitByAnchor; + AttestationLimitPolicy public attestationLimitPolicy; + + bool public allFloating; + + /// @dev The merkle-tree root node, where proof is validated against. Update via updateValidAnchors(). Use salt-leafs in merkle-trees! + bytes32 private _validAnchorsMerkleRoot; + + function _requireValidLimitUpdate(uint256 oldValue, uint256 newValue) internal view { + if(newValue > oldValue) { + require(attestationLimitPolicy == AttestationLimitPolicy.FLEXIBLE || attestationLimitPolicy == AttestationLimitPolicy.INCREASE_ONLY, "ERC6956-E27"); + } else { + require(attestationLimitPolicy == AttestationLimitPolicy.FLEXIBLE || attestationLimitPolicy == AttestationLimitPolicy.DECREASE_ONLY, "ERC6956-E27"); + } + } + + function updateGlobalAttestationLimit(uint256 _nrTransfers) + public + onlyMaintainer() + { + _requireValidLimitUpdate(globalAttestedTransferLimitByAnchor, _nrTransfers); + globalAttestedTransferLimitByAnchor = _nrTransfers; + emit GlobalAttestationLimitUpdate(_nrTransfers, msg.sender); + } + + function updateAttestationLimit(bytes32 anchor, uint256 _nrTransfers) + public + onlyMaintainer() + { + uint256 currentLimit = attestationLimit(anchor); + _requireValidLimitUpdate(currentLimit, _nrTransfers); + attestedTransferLimitByAnchor[anchor] = _nrTransfers; + emit AttestationLimitUpdate(anchor, tokenByAnchor[anchor], _nrTransfers, msg.sender); + } + + function attestationLimit(bytes32 anchor) public view returns (uint256 limit) { + if(attestedTransferLimitByAnchor[anchor] > 0) { // Per anchor overwrites always, even if smaller than globalAttestedTransferLimit + return attestedTransferLimitByAnchor[anchor]; + } + return globalAttestedTransferLimitByAnchor; + } + + function attestationUsagesLeft(bytes32 anchor) public view returns (uint256 nrTransfersLeft) { + // FIXME panics when attestationsUsedByAnchor > attestedTransferLimit + // since this should never happen, maybe ok? + return attestationLimit(anchor) - attestationsUsedByAnchor[anchor]; + } + + /// ############################################################################################################################### + /// ############################################################################################## FLOATABILITY + /// ############################################################################################################################### + + function updateFloatingAuthorization(Authorization startAuthorization, Authorization stopAuthorization) public + onlyMaintainer() { + floatStartAuthorization = startAuthorization; + floatStopAuthorization = stopAuthorization; + emit FloatingAuthorizationChange(startAuthorization, stopAuthorization, msg.sender); + } + + function floatAll(bool doFloatAll) public onlyMaintainer() { + require(doFloatAll != allFloating, "ERC6956-E23"); + allFloating = doFloatAll; + emit FloatingAllStateChange(doFloatAll, msg.sender); + } + + + function _floating(bool defaultFloatState, FloatState anchorFloatState) internal pure returns (bool floats) { + if(anchorFloatState == FloatState.Default) { + return defaultFloatState; + } + return anchorFloatState == FloatState.Floating; + } + + function float(bytes32 anchor, FloatState newFloatState) public + { + bool currentFloatState = floating(anchor); + bool willFloat = _floating(allFloating, newFloatState); + + require(willFloat != currentFloatState, "ERC6956-E23"); + + if(willFloat) { + require(_roleBasedAuthorization(anchor, createAuthorizationMap(floatStartAuthorization)), "ERC6956-E21"); + } else { + require(_roleBasedAuthorization(anchor, createAuthorizationMap(floatStopAuthorization)), "ERC6956-E22"); + } + + floatingStateByAnchor[anchor] = newFloatState; + emit FloatingStateChange(anchor, tokenByAnchor[anchor], newFloatState, msg.sender); + } + + function _beforeTokenTransfer(address from, address to, uint256 tokenId, uint256 batchSize) + internal virtual + override(ERC6956) { + bytes32 anchor = anchorByToken[tokenId]; + + if(!_anchorIsReleased[anchor]) { + // Only write when not already released - this saves gas, as memory-write is quite expensive compared to IF + if(floating(anchor)) { + _anchorIsReleased[anchor] = true; // FIXME OPTIMIZATION, we do not need + } + } + + super._beforeTokenTransfer(from, to, tokenId, batchSize); + } + function _beforeAttestationUse(bytes32 anchor, address to, bytes memory data) internal view virtual override(ERC6956) { + // empty, can be overwritten by derived conctracts. + require(attestationUsagesLeft(anchor) > 0, "ERC6956-E24"); + + // IERC6956ValidAnchors check anchor is indeed valid in contract + require(data.length > 0, "ERC6956-E25"); + bytes32[] memory proof; + (proof) = abi.decode(data, (bytes32[])); // Decode it with potentially more data following. If there is more data, this may be passed on to safeTransfer + require(anchorValid(anchor, proof), "ERC6956-E26"); + + super._beforeAttestationUse(anchor, to, data); + } + + + /// @notice Update the Merkle root containing the valid anchors. Consider salt-leaves! + /// @dev Proof (transferAnchor) needs to be provided from this tree. + /// @dev The merkle-tree needs to contain at least one "salt leaf" in order to not publish the complete merkle-tree when all anchors should have been dropped at least once. + /// @param merkleRootNode The root, containing all anchors we want validated. + function updateValidAnchors(bytes32 merkleRootNode) public onlyMaintainer() { + _validAnchorsMerkleRoot = merkleRootNode; + emit ValidAnchorsUpdate(merkleRootNode, msg.sender); + } + + function anchorValid(bytes32 anchor, bytes32[] memory proof) public virtual view returns (bool) { + return MerkleProof.verify( + proof, + _validAnchorsMerkleRoot, + keccak256(bytes.concat(keccak256(abi.encode(anchor))))); + } + + function floating(bytes32 anchor) public view returns (bool){ + return _floating(allFloating, floatingStateByAnchor[anchor]); + } + + constructor( + string memory _name, + string memory _symbol, + AttestationLimitPolicy _limitUpdatePolicy) + ERC6956(_name, _symbol) { + attestationLimitPolicy = _limitUpdatePolicy; + + // Note per default no-one change floatability. canStartFloating and canStopFloating needs to be configured first! + } + + function supportsInterface(bytes4 interfaceId) + public + view + virtual + override(ERC6956) + returns (bool) + { + return + interfaceId == type(IERC6956AttestationLimited).interfaceId || + interfaceId == type(IERC6956Floatable).interfaceId || + interfaceId == type(IERC6956ValidAnchors).interfaceId || + super.supportsInterface(interfaceId); + } +} diff --git a/assets/eip-6956/contracts/IERC6956.sol b/assets/eip-6956/contracts/IERC6956.sol new file mode 100644 index 00000000000000..a171a930ece2f5 --- /dev/null +++ b/assets/eip-6956/contracts/IERC6956.sol @@ -0,0 +1,165 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.18; + +/** + * @title IERC6956 Asset-Bound Non-Fungible Tokens + * @notice Asset-bound Non-Fungible Tokens anchor a token 1:1 to a (physical or digital) asset and token transfers are authorized through attestation of control over the asset + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0xa9cf7635 + */ +interface IERC6956 { + + /** @dev Authorization, typically mapped to authorizationMaps, where each bit indicates whether a particular ERC6956Role is authorized + * Typically used in constructor (hardcoded or params) to set burnAuthorization and approveAuthorization + * Also used in optional updateBurnAuthorization, updateApproveAuthorization, I + */ + enum Authorization { + NONE, // = 0, // None of the above + OWNER, // = (1<0) of the anchored token + */ + event AnchorApproval(address indexed owner, address approved, bytes32 indexed anchor, uint256 tokenId); + + /** + * @notice This emits when the ownership of any anchored NFT changes by any mechanism + * @dev This emits together with tokenId-based ERC-721.Transfer and provides an anchor-perspective on transfers + * @param from The previous owner, address(0) indicate there was none. + * @param to The new owner, address(0) indicates the token is burned + * @param anchor The anchor which is bound to tokenId + * @param tokenId ID (>0) of the anchored token + */ + event AnchorTransfer(address indexed from, address indexed to, bytes32 indexed anchor, uint256 tokenId); + /** + * @notice This emits when an attestation has been used indicating no second attestation with the same attestationHash will be accepted + * @param to The to address specified in the attestation + * @param anchor The anchor specificed in the attestation + * @param attestationHash The hash of the attestation, see ERC-6956 for details + * @param totalUsedAttestationsForAnchor The total number of attestations already used for the particular anchor + */ + event AttestationUse(address indexed to, bytes32 indexed anchor, bytes32 indexed attestationHash, uint256 totalUsedAttestationsForAnchor); + + /** + * @notice This emits when the trust-status of an oracle changes. + * @dev Trusted oracles must explicitely be specified. + * If the last event for a particular oracle-address indicates it's trusted, attestations from this oracle are valid. + * @param oracle Address of the oracle signing attestations + * @param trusted indicating whether this address is trusted (true). Use (false) to no longer trust from an oracle. + */ + event OracleUpdate(address indexed oracle, bool indexed trusted); + + /** + * @notice Returns the 1:1 mapped anchor for a tokenId + * @param tokenId ID (>0) of the anchored token + * @return anchor The anchor bound to tokenId, 0x0 if tokenId does not represent an anchor + */ + function anchorByToken(uint256 tokenId) external view returns (bytes32 anchor); + /** + * @notice Returns the ID of the 1:1 mapped token of an anchor. + * @param anchor The anchor (>0x0) + * @return tokenId ID of the anchored token, 0 if no anchored token exists + */ + function tokenByAnchor(bytes32 anchor) external view returns (uint256 tokenId); + + /** + * @notice The number of attestations already used to modify the state of an anchor or its bound tokens + * @param anchor The anchor(>0) + * @return attestationUses The number of attestation uses for a particular anchor, 0 if anchor is invalid. + */ + function attestationsUsedByAnchor(bytes32 anchor) view external returns (uint256 attestationUses); + /** + * @notice Decodes and returns to-address, anchor and the attestation hash, if the attestation is valid + * @dev MUST throw when + * - Attestation has already been used (an AttestationUse-Event with matching attestationHash was emitted) + * - Attestation is not signed by trusted oracle (the last OracleUpdate-Event for the signer-address does not indicate trust) + * - Attestation is not valid yet or expired + * - [if IERC6956AttestationLimited is implemented] attestationUsagesLeft(attestation.anchor) <= 0 + * - [if IERC6956ValidAnchors is implemented] validAnchors(data) does not return true. + * @param attestation The attestation subject to the format specified in ERC-6956 + * @param data Optional additional data, may contain proof as the first abi-encoded argument when IERC6956ValidAnchors is implemented + * @return to Address where the ownership of an anchored token or approval shall be changed to + * @return anchor The anchor (>0) + * @return attestationHash The attestation hash computed on-chain as `keccak256(attestation)` + */ + function decodeAttestationIfValid(bytes memory attestation, bytes memory data) external view returns (address to, bytes32 anchor, bytes32 attestationHash); + + /** + * @notice Indicates whether any of ASSET, OWNER, ISSUER is authorized to burn + */ + function burnAuthorization() external view returns(Authorization burnAuth); + + /** + * @notice Indicates whether any of ASSET, OWNER, ISSUER is authorized to approve + */ + function approveAuthorization() external view returns(Authorization approveAuth); + + /** + * @notice Corresponds to transferAnchor(bytes,bytes) without additional data + * @param attestation Attestation, refer ERC-6956 for details + */ + function transferAnchor(bytes memory attestation) external; + + /** + * @notice Changes the ownership of an NFT mapped to attestation.anchor to attestation.to address. + * @dev Permissionless, i.e. anybody invoke and sign a transaction. The transfer is authorized through the oracle-signed attestation. + * - Uses decodeAttestationIfValid() + * - When using a centralized "gas-payer" recommended to implement IERC6956AttestationLimited. + * - Matches the behavior of ERC-721.safeTransferFrom(ownerOf[tokenByAnchor(attestation.anchor)], attestation.to, tokenByAnchor(attestation.anchor), ..) and mint an NFT if `tokenByAnchor(anchor)==0`. + * - Throws when attestation.to == ownerOf(tokenByAnchor(attestation.anchor)) + * - Emits AnchorTransfer + * + * @param attestation Attestation, refer EIP-6956 for details + * @param data Additional data, may be used for additional transfer-conditions, may be sent partly or in full in a call to safeTransferFrom + * + */ + function transferAnchor(bytes memory attestation, bytes memory data) external; + + /** + * @notice Corresponds to approveAnchor(bytes,bytes) without additional data + * @param attestation Attestation, refer ERC-6956 for details + */ + function approveAnchor(bytes memory attestation) external; + + /** + * @notice Approves attestation.to the token bound to attestation.anchor. . + * @dev Permissionless, i.e. anybody invoke and sign a transaction. The transfer is authorized through the oracle-signed attestation. + * - Uses decodeAttestationIfValid() + * - When using a centralized "gas-payer" recommended to implement IERC6956AttestationLimited. + * - Matches the behavior of ERC-721.approve(attestation.to, tokenByAnchor(attestation.anchor)). + * - Throws when ASSET is not authorized to approve. + * + * @param attestation Attestation, refer EIP-6956 for details + */ + function approveAnchor(bytes memory attestation, bytes memory data) external; + + /** + * @notice Corresponds to burnAnchor(bytes,bytes) without additional data + * @param attestation Attestation, refer ERC-6956 for details + */ + function burnAnchor(bytes memory attestation) external; + + /** + * @notice Burns the token mapped to attestation.anchor. Uses ERC-721._burn. + * @dev Permissionless, i.e. anybody invoke and sign a transaction. The transfer is authorized through the oracle-signed attestation. + * - Uses decodeAttestationIfValid() + * - When using a centralized "gas-payer" recommended to implement IERC6956AttestationLimited. + * - Throws when ASSET is not authorized to burn + * + * @param attestation Attestation, refer EIP-6956 for details + */ + function burnAnchor(bytes memory attestation, bytes memory data) external; +} \ No newline at end of file diff --git a/assets/eip-6956/contracts/IERC6956AttestationLimited.sol b/assets/eip-6956/contracts/IERC6956AttestationLimited.sol new file mode 100644 index 00000000000000..6667c3751af20b --- /dev/null +++ b/assets/eip-6956/contracts/IERC6956AttestationLimited.sol @@ -0,0 +1,40 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.18; +import "./IERC6956.sol"; + +/** + * @title Attestation-limited Asset-Bound NFT + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0x75a2e933 + */ +interface IERC6956AttestationLimited is IERC6956 { + enum AttestationLimitPolicy { + IMMUTABLE, + INCREASE_ONLY, + DECREASE_ONLY, + FLEXIBLE + } + + /// @notice Returns the attestation limit for a particular anchor + /// @dev MUST return the global attestation limit per default + /// and override the global attestation limit in case an anchor-based limit is set + function attestationLimit(bytes32 anchor) external view returns (uint256 limit); + + /// @notice Returns number of attestations left for a particular anchor + /// @dev Is computed by comparing the attestationsUsedByAnchor(anchor) and the current attestation limit + /// (current limited emitted via GlobalAttestationLimitUpdate or AttestationLimt events) + function attestationUsagesLeft(bytes32 anchor) external view returns (uint256 nrTransfersLeft); + + /// @notice Indicates the policy, in which direction attestation limits can be updated (globally or per anchor) + function attestationLimitPolicy() external view returns (AttestationLimitPolicy policy); + + /// @notice This emits when the global attestation limt is updated + event GlobalAttestationLimitUpdate(uint256 indexed transferLimit, address updatedBy); + + /// @notice This emits when an anchor-specific attestation limit is updated + event AttestationLimitUpdate(bytes32 indexed anchor, uint256 indexed tokenId, uint256 indexed transferLimit, address updatedBy); + + /// @dev This emits in the transaction, where attestationUsagesLeft becomes 0 + event AttestationLimitReached(bytes32 indexed anchor, uint256 indexed tokenId, uint256 indexed transferLimit); +} diff --git a/assets/eip-6956/contracts/IERC6956Floatable.sol b/assets/eip-6956/contracts/IERC6956Floatable.sol new file mode 100644 index 00000000000000..6c345fdc25fcac --- /dev/null +++ b/assets/eip-6956/contracts/IERC6956Floatable.sol @@ -0,0 +1,43 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.18; +import "./IERC6956.sol"; + +/** + * @title Floatable Asset-Bound NFT + * @notice A floatable Asset-Bound NFT can (temporarily) be transferred without attestation + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0xf82773f7 + */ +interface IERC6956Floatable is IERC6956 { + enum FloatState { + Default, // 0, inherits from floatAll + Floating, // 1 + Anchored // 2 + } + + /// @notice Indicates that an anchor-specific floating state changed + event FloatingStateChange(bytes32 indexed anchor, uint256 indexed tokenId, FloatState isFloating, address operator); + /// @notice Emits when FloatingAuthorization is changed. + event FloatingAuthorizationChange(Authorization startAuthorization, Authorization stopAuthorization, address maintainer); + /// @notice Emits, when the default floating state is changed + event FloatingAllStateChange(bool areFloating, address operator); + + /// @notice Indicates whether an anchored token is floating, namely can be transferred without attestation + function floating(bytes32 anchor) external view returns (bool); + + /// @notice Indicates whether any of OWNER, ISSUER, (ASSET) is allowed to start floating + function floatStartAuthorization() external view returns (Authorization canStartFloating); + + /// @notice Indicates whether any of OWNER, ISSUER, (ASSET) is allowed to stop floating + function floatStopAuthorization() external view returns (Authorization canStartFloating); + + /** + * @notice Allows to override or reset to floatAll-behavior per anchor + * @dev Must throw when newState == Floating and floatStartAuthorization does not authorize msg.sender + * @dev Must throw when newState == Anchored and floatStopAuthorization does not authorize msg.sender + * @param anchor The anchor, whose anchored token shall override default behavior + * @param newState Override-State. If set to Default, the anchor will behave like floatAll + */ + function float(bytes32 anchor, FloatState newState) external; +} \ No newline at end of file diff --git a/assets/eip-6956/contracts/IERC6956ValidAnchors.sol b/assets/eip-6956/contracts/IERC6956ValidAnchors.sol new file mode 100644 index 00000000000000..7de78697c886e1 --- /dev/null +++ b/assets/eip-6956/contracts/IERC6956ValidAnchors.sol @@ -0,0 +1,28 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.18; +import "./IERC6956.sol"; + +/** + * @title Anchor-validating Asset-Bound NFT + * @dev See https://eips.ethereum.org/EIPS/eip-6956 + * Note: The ERC-165 identifier for this interface is 0x051c9bd8 + */ +interface IERC6956ValidAnchors is IERC6956 { + /** + * @notice Emits when the valid anchors for the contract are updated. + * @param validAnchorHash Hash representing all valid anchors. Typically Root of MerkleTree + * @param maintainer msg.sender updating the hash + */ + event ValidAnchorsUpdate(bytes32 indexed validAnchorHash, address indexed maintainer); + + /** + * @notice Indicates whether an anchor is valid in the present contract + * @dev Typically implemented via MerkleTrees, where proof is used to verify anchor is part of the MerkleTree + * MUST return false when no ValidAnchorsUpdate-event has been emitted yet + * @param anchor The anchor in question + * @param proof Proof that the anchor is valid, typically MerkleProof + * @return isValid True, when anchor and proof can be verified against validAnchorHash (emitted via ValidAnchorsUpdate-event) + */ + function anchorValid(bytes32 anchor, bytes32[] memory proof) external view returns (bool isValid); +} \ No newline at end of file diff --git a/assets/eip-6956/img/erc6956_concept.svg b/assets/eip-6956/img/erc6956_concept.svg new file mode 100644 index 00000000000000..c9da78ca982832 --- /dev/null +++ b/assets/eip-6956/img/erc6956_concept.svg @@ -0,0 +1,16 @@ + + + eyJ2ZXJzaW9uIjoiMSIsImVuY29kaW5nIjoiYnN0cmluZyIsImNvbXByZXNzZWQiOnRydWUsImVuY29kZWQiOiJ4nO196VIjSbbm/3qKtLp/7pi14vq+tI2NXHUwMDE5XHUwMDAyxFwiQGxim1x1MDAxZcO0XCJASGhhbevnue9xn2y+I0hcYoVcIlx1MDAxNFx1MDAxMkikspro6swqJFxcLvfznfNcdTAwMWT3s/zzj1x1MDAxZj/+7D/d1v78+48/a4+VUvOy2i09/Pk3+vl9rdu7bLfwklx1MDAxOPx3r33XrVxm3tno9297f/+v/6L3XHUwMDA2l+XaY9Bo9/ovv1Vr1m5qrX5cdTAwMGbv+7/471x1MDAxZj/+Ofgz9DndWqVfal00a4NfXHUwMDE4vPT+UUZ4XHUwMDE2/fFOuzX4XFwtJOdWcvH2hsveXG4+r1+r4tV6qdmrvb9SXHUwMDFkTHRX3m6621pVbVTWs+py/arvVt8/tn7ZbFx1MDAxZfSfmoNp9dr48u+v9frd9nXt+LLab/xcXIHQz5N+q9u+u2i0aj36+vztp+3bUuWy/0Q/Y+/f7mVccv7+4/0nj/RJnrnAOauUY1x1MDAxMv9o/fYyXHKQUcZcdTAwMDTCcOdcdTAwMDU3+INFZ7bcbra7NLP/YIPnfW7lUuX6XHUwMDAyXHUwMDEzbFXf31Ov19/f8PD6Zbk1gffScO6x5EqEptCoXV40+jRN41x1MDAwMm2tt5xzKbR9f0uvNthcdTAwMGWOXzWOZvD2XG59+O1G9V00XHUwMDA2P21t+Ov8WaV612ndnK2uPSzdyUb2bVJ4g2c79Y31o7tVrjtcdTAwMTct8cw2i42l8Fx1MDAxYpbrtr+yvbV+WLqSq9nuoz7qXHUwMDE1M3++vv7/ojvXKHVvX3foz1x1MDAxZf1HaIVocVajXHUwMDAyXHUwMDFjXHUwMDE24iFBLnW77YfQRN7Ebjl3x7Jq++GcPyzz9fLFo8v12J9v7/vX3z447slG83ynUcr191x1MDAwYozdnujdjjkqzmDc1Vb18uAw13zkS4f2vpI9urq4r6WP+/LLhfbDfud0s7Zj93dPV1x1MDAxYlvV5iarXHJ/yvBcdTAwMDQmXHUwMDFj92CjsFxczoh+y963Kvkl5/3p+c5cZsZduezrZpOxO3t7f5S9Km2vP+2tTTbuiEjd3VZLL9pcdTAwMDdgXHUwMDE0mlugU0n39nrzsnWNXHUwMDE3W3fN5lx1MDAxZqGZjajEfu2xXHUwMDFmp1xyueMu+uOf2lAwy5mWTJuJ1eHR9v5WR51dbvWLsnJfvdjJNJd0gjpslCqNu24tSSHyKKzmqFx1MDAxMJVccpyWinnDlORGXHUwMDBlK0RhXHUwMDE4tFx1MDAxNdPeXHUwMDE47aA1ozObSiH2u6VW77bUhVx1MDAwMlx1MDAxONWLXHUwMDBlmldK5aRlXHUwMDBlmlm8T+RNLWo5UM7Qh0455ZmNqkUlXHUwMDA0plxi5ZiiXHUwMDE1f6HS+5B4v1x1MDAwYlG71T+4fK5ccr5roFx1MDAxNDfMWss1TFx1MDAxNVND78qVbi6bT0NyMcBcdTAwMDGmuJM7XGZvU6+GT6JcdTAwMTGlTVpe+s2l5uVcdTAwMDWh5s9cbr5KrTtcdTAwMDSo/iXIzdtcdTAwMWL67dBcdTAwMDJUMJdcdTAwMTLG725Uo1+m3b28uGyVmoeheY1cdTAwMDXyYJ4xQNbgNYlA5kpcbpJcXDY5kI9WXHUwMDE0v2+d7YvN9rPbbm7XKvWrj/Caj8CYfVxixpJxXHUwMDE1cKWMgjhoyMUwiqW2gTWKS+edV9579Vx1MDAxOVx1MDAxOMfzXHUwMDFhZVx1MDAwMmOdZoxDjL1cdTAwMGKJY1x1MDAxOL9cdTAwMWW0R1pcdTAwMGZlormTUfxy5lx1MDAwNDSNdSpcdTAwMDXAxZWjs7OGXFzKPD+vN9RRv5G/eJJhXHUwMDAwd/OZ5pNr9ct3ailb36q4YvGiN1x1MDAxYoRcdTAwMGZcdTAwMTZjblxi7/VL3X72XHUwMDEynKF1XHUwMDExfa3Wqia80iz1+svtm5vLPj5vt33Z6seOu0Qmt1ErjUBcdTAwMTEjJ752S8Nccq//+7/9eFx1MDAxN8TBf7z9+//7W+y7IaXOXHUwMDEzc+XKK6hrXHUwMDE5/m1cdTAwMWUoMHPwYulcZodcdTAwMWRgOm04XHUwMDFiMFx1MDAwZaPFmNCMw4r5v1xyfZZmwnpcdTAwMGWRgtBcdGNTh+MscIY52DujmdaG6fB4sD7ScSaAI600XHUwMDAzoNLGXHUwMDEzPNCe8OhcdTAwMDA968w7m3hcdTAwMTlPOsWdXHUwMDE1VkOFXHUwMDBiLVKHU4FXRkphXHUwMDA1ZsjwvYaHs1xcXHUwMDE5i5U1QjAptUtcdTAwMWTPXHUwMDA2Wlx1MDAxYVxy2+FcdTAwMWT9ilx1MDAxON5cZqO5sFJ6xiSmx1NXT/KAS3whXHUwMDA2r4Vp4YZcdTAwMTYvg6VV2oNzWe+AXHUwMDAyL1NXT4qAXHUwMDBiXCJcdTAwMDOcK23hK4XHXHUwMDEzgXbYVKZcdTAwMTXXynrGJ1x1MDAxOFxyK0aSx5WAnLnwaDrwQjHNtYVXXGLvLHUrpFx1MDAwZUBRICxcXGjv7butpMdcdTAwMDfMcc1pp6Sx4DSpo5lcdTAwMDA6XHUwMDEx31x1MDAwNsIslFx1MDAxZt5cdTAwMDdHq1x1MDAwMM3OXGJcdTAwMTJcdTAwMTCY9HXTgVGCfkHYwYZcZolcdG26XHUwMDAzuZXOQVx1MDAxYnEr0mcnXHUwMDAyQdKLlcOXglf6t+FNXHUwMDE3XHUwMDEwXHUwMDE0XHJcdTAwMDFcdTAwMTKAXHUwMDFhM3ZcdTAwMDKps5iTI6lzXHUwMDA08mEpJpRBXHUwMDAxWG7hgGuXLsRcIrBkTFx1MDAxONZcdTAwMWPAsGxIpUhF++S5slx1MDAwNipCeTlcdTAwMDHGmGdcdTAwMDYqxYFVecmGpFx1MDAwZUuroVx1MDAxOaBMvFx1MDAwNS1cdTAwMTbapI6H3zDYVXxbXHUwMDBl4Ye/PzSeXHUwMDBiMGOutfCC5skmXHUwMDE5XHUwMDBm+2ZpPIE9XHUwMDE2Q5tcdTAwMDFcdTAwMWKMdbBCK5JzqJVJRmOGLD5cdTAwMTgkuINcdTAwMWVcdTAwMWFO81x1MDAwMJZaa1x1MDAwZdZcdTAwMDDUpqs7aHdviIs6I5mTw1uhXHUwMDA1XHUwMDFjXHKvJJBcZiE3PF27c4KskVhxJWA1vFx1MDAxOVx1MDAxZU9cdTAwMDa0T9xj+72zSqauXHUwMDFk1DuGguZkXHUwMDEyptg5ySPfVkNKXHUwMDAwWKh+MCaV+n0xXHUwMDFls570p9T4a0ijKFx1MDAxZIBoWehjfFx1MDAwMS9N+mhg35ZDXHJDqjyUN+eRnVx1MDAxNfCKlOBANPRd+nBcIsB34Yq2XHUwMDE2Slxi+1x1MDAxMpVcdTAwMTRccqrIXHUwMDE0lkIw8lx1MDAxZdLGy3DAllx1MDAxY0XGXGYkWVx1MDAxOT2kplx1MDAxNHBcdTAwMDNTXHUwMDA2OVx1MDAxMbSK2JnUXHUwMDAxVVx1MDAwMPUjSVLhclx1MDAxOOmGvrD0XHUwMDAxXlx1MDAwM1WEblx1MDAxZohN6nDgXHUwMDAySurB+nGokOHvXHUwMDBi34ZcdTAwMTmB5YWQMytF+tf1gXOC1FxuxlSQXHUwMDE1XHUwMDFi0Vx1MDAwM9BPkHBoXGJ8Z5s+nCFRVsRUwHx0RPSmVytcdTAwMTmoSa9cYrpcdTAwMWO0XHUwMDEyXHUwMDAzusi3XHUwMDA118BcdTAwMWXhi0KShE+FXHUwMDFhzDOANNhdXHUwMDA2XHUwMDE1XG68qyG1rFx1MDAwMFx1MDAxZPqqmCPHzlx1MDAwYp9qNKD2gCRGRkjAXHUwMDFhXHKpPfJdofcg7/A0IX2pm1x1MDAwYpNBxFx1MDAwMqtnIdPDi6egpdiAWHMn6LQ0bTBPOk/QziroXHUwMDBlPsxcdTAwMDTwRYVcdTAwMDO/k5Jb+szUL0pKgEkzUFx1MDAwMmD5XHUwMDEw5shOWMlcdTAwMDfmjvRouqBwkChsKeko6DtlXCJcdTAwMWNcdTAwMGaCwiU+XHKEXGKULH3hoEI10WlcdTAwMDBcdTAwMWOS71wiSkpcdTAwMTJFhpLS3ijY0Fx0VLJccjiUsVwikEFYRMQ6SrxcbnZvPLP0XHUwMDE1UllcdTAwMTRcdTAwMGYgaJpkzlhDXGZcIsIspIfgWJpcdTAwMWPsN0ulXHUwMDAyXHUwMDEwYqv9wIGFdIHZXGbJXHRcdTAwMTFcdTAwMWaoXHUwMDA2zNvB+4RPkFx1MDAwZVxuUFx1MDAwYmU1yVx1MDAxZFx1MDAxMUdcdDZcdTAwMTVhZlx1MDAwMl+XXHUwMDBiclg5XGZ4quRBh8JcdTAwMTOk3WCKw1CCXHUwMDBiXHUwMDBm80aliN87onlYjvTlg8M8UPFcdTAwMTLmXHUwMDA3LsvQ5pI+JNdcdTAwMDLrQDzKp+uoXHUwMDE0XHUwMDFkXHUwMDAwXHUwMDA3XHUwMDAzI8EjXHUwMDAwJbfO6lThS3Jccv9cYv+ddNhTazYvb3ux5z0ypI2j5z3EoGExQs5M6nnPfft+9fn0qNraK1xcXHUwMDFj3dvM/uXJ/d2i32Np+FNkueGIXHUwMDAyOfz9mPrlXHUwMDFlXHUwMDBiuFx1MDAwN6+0XG6kXHUwMDBldMKGjnVnfW5cdTAwMGJcbktcIqhIX0pjzPtcIryd+0BDO+hcdTAwMTn4XHUwMDA38K3hwMj32f48+HEwXHUwMDEx5N28XHUwMDFmjiRcdTAwMWP8bO8+sPvt/OOz7p9cdTAwMWafnj6K6noxfK5zt7FZ6lxcZTtHXHUwMDE3ZfG82eo86otSdoGPdsdiIOnAXHUwMDEzpk4mXHUwMDAxgO5cdTAwMTah0ZWaWP6vT4+fTHl7o7Z9dpI7XbY92dG9RZd/I1x1MDAwM1LhXG6+XHUwMDFkSJ1Ww/IvjVx1MDAwN0HDOFx1MDAwM2xcYqn0Z+T/Pyq1qqqWRmVfQPQ9hy3xsPFcdTAwMWFKOEb2XHUwMDFk4Vx1MDAxNNrS4k109lx1MDAxYVx1MDAxNX38VFx1MDAxMHE2XHUwMDBiLPnzPfL8bVx1MDAwZS8ziftNz8hOT2nwksH+zotGrFx1MDAxZChcdOndKdCuVlx1MDAwZawvnph85uzq8rRfPL1+PLdcdTAwMGKPdkaHPNBrcNylNVx1MDAxMWtcdTAwMDefJOB03MDgkinBrJ1cdTAwMGLauVxmpFRcXDNiSLT9MVdcdTAwMWMgmVx1MDAwMkbO0iUmaKZcdTAwMGJdRb7iXcPhYJCOtDvKb7z/crwnbzg9o1s9K8DbkCGJXHUwMDAyXjm4uDSjiVx1MDAwMd/IXHUwMDFmP1+3j9pcdTAwMWL3YuPser/TPthXXHUwMDFmus78UsDD+Vx1MDAwM+DhqEunQmFYr3hcdTAwMTd0XHUwMDE2xVx1MDAwNN6nKWZgPsadXHUwMDA38DuZgdNoLDfy/UApXHUwMDA0d1x1MDAxNcAvNeRjYVwiTo1cdTAwMDZqXHUwMDE5UFs43lwi9UbzXHUwMDFi7r9cdTAwMWHumeRcdTAwMWSnZ2SvZ1x1MDAwNneeXHUwMDE4vcBcdTAwMTlcZlx1MDAwNVx1MDAwNbRMXHUwMDBl9/v13EVp76GU0etcdTAwMWR11dstne9cdTAwMTTMosNdqUBcdTAwMWFcdTAwMDDace6cj5p3cH3BtDOGTr6k/lxcUGaidXeBXHUwMDA1XHUwMDEzV1x1MDAwM51cdTAwMDLtXHUwMDEyw+XxXHUwMDE2XHUwMDA214uOt4VnUo/ELzhcdTAwMWGBmW+sLzzWXHUwMDEzd/v1xeF9nlx1MDAxOdLVmHMryUDmJ1x1MDAwZjd8rO3VXHUwMDFmt05qdzfVm+5Sd+uhfLq+sug4h1mn4CCpvfXGhVbjXHUwMDA16MpcdTAwMDR0klx01Sukk4bPh8eDuDHHXHUwMDFk3U5IuE9KxUFdXHUwMDA3wkq6jFFcdTAwMTBcdTAwMDXlzEisoVdcdTAwMTa8z3377YtcdTAwMGb25FxypyczutczwjuGM0l4x1x1MDAxYXO6cZnccT/Jbub3187valx1MDAxN5ut50y/fGOXslx1MDAxZjqm+8roYq1cdTAwMDJvKVxiyzvvRPSUmrmAokawTlx1MDAxMmD6JI9XXHUwMDE1U6vrUbhrXHUwMDFmXHUwMDE4q5VcdTAwMDOTYiBuPC7fQlx1MDAwNFx1MDAwMsTDKK244GzouPyVx1x1MDAwYu1AU0L3Z1x0cP9t0fxcdTAwMTdcdTAwMGY85DZQRlhFXHUwMDEwt4yipod1XHUwMDAwVIRkXHUwMDE0/Owp7I+l31wiS1x1MDAxOTjDPeRXXGLufWQ8XHUwMDE2MC0ocJ5cdTAwMDZcdTAwMWSETaWHWfHAa1x1MDAwZcZcdTAwMDFcblx0qFxmX/yKwEkpXGajyFx1MDAxZkr9SVx1MDAwZmSSLKA4XHUwMDExXHUwMDAzhcfwvb2IXHUwMDA0vJG8W2cpXHUwMDFjRttcdO5WKZCJoiyFt1xuiFxyXTC8zE/iu1x1MDAxYUbXmzCMMv3ul1x1MDAwNnRcXGpjPFxiXHUwMDAxXHUwMDFlJ4Z3JFx1MDAwMFx1MDAxMD3YXHUwMDAyXVx1MDAxOOGru9RcdTAwMTFZYChg0Ugoerzf2WhcdTAwMDBcIlx1MDAwNVx1MDAxMdFtOL6CoSiGWdE6wVx1MDAxMvNIrMFyOSEmV/O3ZqVeydur3G6n2bm9vcpcdTAwMTftQT9Bzc8hjeRj8edYUVx1MDAxObBBXGIj/Fx1MDAxZlxuQ41oeiFcdTAwMDPwPZg8TdEqnzugXHUwMDFke1x1MDAxZKlcdTAwMThQXHUwMDA0k6NcdTAwMTT0nlchevbO7WxgjKNJek1RXHUwMDFiYbvz8zpSa9BcdTAwMDTL0jy5b22/mNpcdTAwMWVgx1xuSFx03axgzoW0Q9o041x1MDAwNoFcdTAwMWTa4zVvSFx1MDAwNFJcdTAwMDfk8FxcKJpcdTAwMTfC5Z0yKjqc4aT7XGbFck5cdTAwMTD6XHUwMDA2XHUwMDExxNtcdTAwMDRFVVx1MDAwMzDgRlx1MDAxMUY6XCKhqeZccsbD0rmwXHUwMDA2l6Iw06FIlYxcblx1MDAxOJ1EWlx1MDAwNoVrtfPpgaEyoFx1MDAxMG0rYDqk0yxiLaFLraBAJIylwJhTp1x1MDAxN3BLRohcImXwp1x1MDAxY1x1MDAwZVx1MDAwN8vYwFx1MDAwZlx1MDAwZUlcdTAwMDUgZ4bi9CdSzGNznr1NTHmmyHxcdTAwMDWn4Fx1MDAxZCppynl//2Dl+jy/vCQqrW7v9vjp+eHhZvFz/Fx1MDAwNC0wN57i/L30UeVcZpKuIW6Cw0BiWz+VXHUwMDFjNFY5c0VcdTAwMTd1mlKvgUtcdTAwMTXOXHUwMDAwXG5pZ1x1MDAxZlCEkXKDSFx1MDAxZVx1MDAxNnOmTlx1MDAxN6xcdTAwMTS+m3aF9pdcYvXgLplcXGCRrFxmXHUwMDA3/6TeXHUwMDA1XdV3XHUwMDBiXHUwMDA3h6rbzl2Xzp86vtmpPS62XHUwMDBmmXGQXjBLcDtcYjIzUenl3Fx1MDAwNFCkkq594UWCOM/FizTg01x1MDAxNFPrKJFcYmYjzouUXG6MlktKYpPg1Wrk7lcwUsA6fJxcdTAwMWYvuTu1vM/zi8zWTnmHburrp7Wq/6ZccvM/XHUwMDE1hiZU0ISKwls5XHUwMDFizpzJkGqC6+DgKUpcdTAwMDH1NIFPpym72tCNLlWVsHyYN7CAklx1MDAxMZjXQkhccq4yQU5cdTAwMTSFdlOSLtxcdTAwMWOKi41cXEljflxu3qjjoFx1MDAwZuT1pVx1MDAwZSdEwIm5XHUwMDAwOLBcdTAwMTLDNFx1MDAwNGbBQY7hyFx1MDAwMn1Cpae7ZVx1MDAwML7AwoeVSjhcbipcdTAwMWXOn1x1MDAxM3TJg4Xzjlx1MDAxMKQmXGKXXHUwMDA1yaCEXHUwMDE2XHUwMDE4XGbLIKBeRGhcYlx1MDAwZiyDUYNcdTAwMDNcdTAwMGI/XHUwMDE2fD01otfAJ9Z0XHUwMDBlXHUwMDAwJkfR8cMsiVx1MDAxMko47bpXms6oZ3XDh81cdTAwMWRTaEBRvtFcdTAwMTRcdTAwMGVi7+pova/Y2o44WC/4y/WNXHUwMDAzs1JbdFx1MDAwNzFcdTAwMDPOXHUwMDE3gMk6aHPrgYZIwFx1MDAxZWQ1ILtcdTAwMGXX3TtcdTAwMTD2OTqIUlBcdTAwMDaV8Vx1MDAxYU6eZbFcdTAwMTTEXHUwMDE5SlFzSpBcdTAwMTgzx0fiVWF1PfhUalx1MDAxMM+3XHUwMDFl/zXun1xuKPWFquTA3zA6kn6S8VQ7QYPuQpVCWaZH2mfwnoBcdTAwMDJRrFx1MDAxMoaTryeiXHUwMDAzalAxzYmYkulPXHUwMDFm0FxysjThfHjKzeJi2DKMimCq7Vx1MDAxMibQUFvwd+DokWxcdTAwMGZ7gPSVpaLaR1TlKT1cdTAwMWJcdTAwMDC+WFx1MDAwMIeMsjnAvqK5XHUwMDBmcFx1MDAwMVx1MDAxZD5cdTAwMGVcdTAwMTCQXHUwMDFlLpTx6Vx1MDAxOVVcXJBLiVx1MDAwNdSUkIl1XHUwMDFhnqCTVFx1MDAxNokxrK/A9/bTns5cctffXHTfwrjES1x1MDAxOLqCYZxcIjom1r5Xu/t7j7X7pa3a2naPXHUwMDFkiWpz4yEpfDJF+0b9rDlyaEPEhnFwXHUwMDFimElKgYxwaNhtRZGkimyjVmMuXuuD51x1MDAxM2VeQDhATqDiwYvoMH5U/UJU6dSB8oyE8mr06pVTVlx1MDAxMFi2S7uM2Tnb2MuX7kU+q4qnZ/xiU663Nv6d1G9cdTAwMTRcdTAwMTVcdTAwMTFcclx1MDAxY315tqVcdTAwMWVop1x1MDAwN+mHXHUwMDFhvJpcdTAwMGafxit4U9YzZZV1XHUwMDA2tDGd+SZcblx1MDAwZT1cdTAwMTkqtDBcYtsykkK0VDir/VPcbVxmdaP7XHTHrJhcItXoeNVcdTAwMWZcdTAwMTTb+unuvlsrXHUwMDE1l1x1MDAxYvl89TApXHUwMDE2c4G0XHUwMDA3JfDAZDA4Pt6ISM08TjdNnlLsQaacZzL5/OizyoPBWYHzXHUwMDAz41x1MDAwNvfGY/ljko1cdTAwMWOju1xc+FxmgzR4IeOuclx1MDAwNadiXG5pkVx1MDAxYv/22uOXnd0n7fLg5ZFccp5cdTAwMTLp41x1MDAxMlx1MDAwYkN5RCOZXHUwMDE2YPtcdTAwMTZMcnJH7dJuXHUwMDE01nf2XHUwMDFhe0f99W2+28qvWP5cdTAwMWJQXHUwMDA1ZVx1MDAwMkrzdlx1MDAxNJBpXFzUT4NcdTAwMTOvPHfE+1x1MDAxONxknpxY9Vmwgy96byibn1x0b3VcXGIh3qK8XHUwMDAxgfOYraRcXMdcdTAwMTGw06mgkWHGM2uwf/1ZcVJBQ1xmmSS+gkvKwJymXGba+Um196wvXHUwMDFhl6JS4ftP9vSgepdZePF1TFx1MDAwNFYqUERcdTAwMGbSIaKHxZSiXHUwMDBl50NcYmmEsC45Lfaz0itcdTAwMTmnTzI/n7jcQGNcdTAwMDIqhCRcdTAwMWRcdTAwMDU1w7yO5Fx1MDAwNkqFV1VSObTFqEOosaKajD+d7eB7hCabUoeQPXIhgyBcdTAwMDA4w+v8Vo9QJS7PUD3CZq0+jIbZVCNcZs/uQ8yR82RjQrUqyNWanDluXFyoKuOieWnLvna69Sgy14eNRb95zHjrXHUwMDAz55X7icdcYlx1MDAxYYFcdTAwMTGmrZaeXHUwMDA0T3o3v1M/QU5l6OExyTxcXFNcdTAwMTmW0KOieISvojhlJE2Px29K+KnMnMTto2d046akhElcdTAwMDY1+eqVc6Kg3E3OXHUwMDA2W/XGbvepu37erbdWtK1cdTAwMTX3bPlg4Vx1MDAwMcyhgLHyjqSQ0Vx1MDAwMdFwKlx1MDAxZVx1MDAxNlx1MDAxZT7+XHUwMDBievHnXHUwMDFjq0xcYlx1MDAxMzjpwUipYlx1MDAxZDzRuLguwYbEYPTgSFCIomQ2/th+MeypN1RcdTAwMDXm7Vx0UbpcdTAwMTRzunRwsFx1MDAxYV/Yl1x1MDAwZf/i1+UrXGbpy7w+ZEKlTIzdobBcdTAwMDfKXHUwMDFim5zPXts91rxfPl7Onm1tXFzkXHUwMDFllrN76nrhXHUwMDAxaFx1MDAwNmXzKGZcdTAwMDZcdTAwMTRLqvdcbqevJtQrwJNcbq9cYmnZJ3PjUlx1MDAxMVxiXHUwMDFmWHmmJIx2nFx1MDAwMZV0qqeUo8pyXFxhsiNnL3BD4I8xmVx1MDAxMFj5bUHnZkFcdTAwMTO37+XVkZ2bkVx1MDAwNVx1MDAxNckl9qlcdTAwMTAs1XTzk4cv9fdLRVvJP3T2no/9/eamUUc3nYWHsINcdJVcXFFcdTAwMTFDTTVcdTAwMTmHWTD0fdiEik9Vqlx1MDAxOY9gXHUwMDFiR3pcdTAwMDWPgnTQXHUwMDA1xkr1XHUwMDE3NZM7y+uF/Xg7qYfePXfD+DKTXHUwMDBmWcYxuKJ4YkWhwFx1MDAxM8Pqsah2O2XRWFm+uMg+lq6fj9av1lx1MDAxNlx1MDAxZVbW0IWy5lx1MDAwNjaQ0+HfXHUwMDEwrJxcdIw3ZlAtki7m54YqTlF/L1x1MDAxZkPV8UKh4eGYVlxupYKjXHUwMDBiSaVChqOXXHUwMDEyVIN1cJn+XHUwMDAxzH1cdTAwMWLGT9V4Sdo+ejKjOzcjw1x1MDAxOL5jXHUwMDFmqfHCLJU0n4Lbblx1MDAxZp1cdTAwMWOtrDyudM/36yuP/ijP18++MCbso86l0jbgQlFhbKNtuHzKgNzSveOgXHUwMDE0M1fCaTvPwHRmWFxmbGNso6N6oOFsur+ebcxcdTAwMWOuLq/vXHUwMDE0tlxua6eLYybDk/pcdTAwMTDgpE2uouathvqdXHUwMDAyb8VcXOk4c7i/qsxcdTAwMGXjm2v6WJw1z38t3nxcdTAwMWHcwOdcdTAwMDZlLfBob1348uM1XHUwMDFi21x1MDAwN1JRyFx1MDAxY1x1MDAwNSQrNkeTyX2ghTV0hUiRxzbGZGK7yCPxXii8g6mRu1x1MDAxMc6VXHUwMDFiXHUwMDE05k6LwXzq5c76Z+f5TrO5tlncfPI3x+V3waZptfYya6ZTXFy9riyXsqJ0+Xil7lx1MDAxNqvZk6BbXHUwMDE24jEvyV3hqIZcdTAwMTRI/89/x2JcdTAwMTirn7C8X1x1MDAwMWlMaiyGxyZ0jVx1MDAwM7KTznlcdTAwMGY/amIkXHUwMDFmr+RbleWcOqz2t+qyom5E9nR30ZHMXUDxNtT4htJcYm3kkp5cbiaBQcCkXG6tKG9mfj6lXHUwMDE4XFzBS01Zv1TASceEU0tGUfxSQrVQp46RYGpNfUjgXHUwMDFlLzCQ3z7jn2//9iZBOVe1hcv9hqlVttqGN5ZX2e1eaFohuZ6uReN1/vmylF85Y2dcdTAwMTlzXFzaeF67lrNo0bh5Wrpu9eSKObquMbu+srl227mYwbi1m6eDle1W46ldqObLu/J6u1I+mmzckS2ad6RE+Fxub4R9a052ZYpjqcyd6d/YtdWb7u5GabOi9ONmPymrblF0iFSg3oZcdTAwMDLBX1x1MDAxZVx1MDAxN1EhLFx1MDAxMFx1MDAwNnZBcFAjpbWf39WsdFAhzlx1MDAxMU9lnvJ84lx1MDAxY2i62oFHQdzbXHRcdTAwMTNcdTAwMTPUR4nFylqVlrH/XHUwMDFiXHUwMDE4e69cdTAwMDMjXHUwMDA0aJqgQNZQ3FOKqS/sLy1vrcaae7pcdTAwMDGKXb6vsPav81x1MDAxYVx1MDAwYtTEcy6TXGJURdevXk1cdTAwMTFDUchUSysrl+flh9OtPX2WO2pWdmZcdTAwMWSQVy31XHUwMDFhtVnfwVx1MDAwNpJapjlmrfaSjUDVXHUwMDA2VJHa4FVccmo9P95uhINWkFx1MDAxMGYq1WhYjK23KvBaUVx1MDAxYjVphuf6XHUwMDA2VEHx4OktXHUwMDFla41aeb+yetO4qF5Vm42DcvP2XCL7XHUwMDFkfTv3i6LETaZnZHvfh/sj/PfUMFx1MDAxZlx1MDAxM2lcdTAwMDGPZ1x1MDAxMFx1MDAwNDb5efb9ytHR88Ptff2ynrmpXHUwMDFlblx1MDAxZmSy+8e/XHUwMDAxzuFcdTAwMTUzS4U/qPvKUH3xV6DDJdaMYyjYSeHnXHUwMDE3baE8tTc0ntKM4WhcdTAwMThcdTAwMTNcdTAwMTNtXHUwMDAxZkD5YeD1iiqZcD1cdTAwMTJtQYVDNFVx/kb6QlwiPXmX6Vx1MDAxOd3fKbE+1onnTCVcIp7yXHTZVJHK225/qdRaOt3IXHUwMDE0norVvr9cdTAwMTNcdTAwMDe5XHUwMDA0vC9KVVx1MDAwYi50YKk5qFx1MDAxZCRrKlx1MDAxZDmNg8WnxpGOUS9HakM5n1x1MDAwZSaKmrYywbVhVFxuzsek40HRXHUwMDA3VDbTXHUwMDE4bzllz4+YdEW6ypvUUqhm53zn9vRw5666en25kt153jtYnVxm6J/xzz/hR49MbVZ+6XhscJ98N+SpgppQU6Sh7ORu28/le32ev9g9rVx1MDAxZrVu1NXql7Uz//DdbkDlNzxcdTAwMDNdlC58NPRcdTAwMDJcdTAwMGVpXHUwMDAyKjlHrYlhXHUwMDExwyxzVu3MpfSB8VB7XFwqqpukYmInNFNUesZcdTAwMTloUCv8aL1cdTAwMTfq8WYsJdP8MmTMXnbH5E9xoVx1MDAxMvtSca6dpO7wXHUwMDEzXHUwMDBi7l7hrHizt2+qVZFd48/V0/Pn3dXFXHUwMDE2XFztXHUwMDAyqjZgqUhcdTAwMWM1uo3caHJcdTAwMDeKJyEsmspaQuvOQXCNp2JejFx1MDAwM1x1MDAxYlx1MDAxNisu4/JOXHUwMDEy3/J2y0llSbCZaUeyv5PcJp1cdTAwMDXqZCbCqViopX6yXHUwMDEzXHUwMDBi7dXxkz7PXHUwMDFkbeeOy8dS2p262Mwsfp6GfqlcdTAwMGbgX1x1MDAxMzVkpD6AXHUwMDAzS9CC/4xR0/O7T/BxeVKx9/COKaV46Nr+L3RcdTAwMGa/u18o5DL4Z7mwc7hf2FqEa/iROY1cdTAwMDVbYkl0lXh5ZynVV05zntc4qj+2l7r+VG2c6syzLzZuqs2Fx5pUXHUwMDE0UiRccrXM5HD4I0lRwsrAK0hcdTAwMWIjXHUwMDFi4sck2H76XHUwMDFhnlhcdTAwMTYlXHUwMDA0WICJelx1MDAxN8e17qTwc/hcdTAwMWZSXGIqcONHgciEo+YsXHRcco7m6r77sUD8i7vvybtHT2Zk497H+yP897TWkrPE3mSOUvykncJY3u8+nd8xVV7aLqxd7JSqrVIhl9R5d4FcdTAwMGXqNFx1MDAxZlx1MDAwNMu/JjUyXHUwMDFmOZDnxlx1MDAwNixsLT91UPdcdTAwMWZCuHLNjMI3lE1cdTAwMTmCa1x1MDAxNJ9cdTAwMDJqXHUwMDA0TNSxX2Aox+MzZChDfCPFMvbbsbYwRFS/wlx1MDAxNmJcdTAwMTZcdTAwMWayfoIld/oyimkh1Fx1MDAxNNfO7vL6TDyIk5o5qZxVTPZ22XbXP4aer+tcdTAwMDGU0Vx1MDAxMaZcdTAwMTk55OZcXFx1MDAwNs46/zMhQs0v6FP4mJhPeHDv8aZcIqbvj6CMZUaV1Fx1MDAxNlxyUH9xg5dRwc9dXHUwMDE5/PnuXHUwMDE00KN1XHUwMDEw2jaYxbThhFx1MDAxYvp4ikRWofF5+u9cdTAwMGZ/YrRcdTAwMWVVeDCtXep8klx1MDAxNuNT1tolXHUwMDFhay5cdTAwMTiVXHUwMDE3VFOcx1SerMmf9crNXHUwMDE1cba3b1x1MDAxZbdP2d7hwutcdTAwMWKK79f+Zz1cdTAwMTAjWbT2XHUwMDFk88O+7fyu1Vx1MDAwNDOBXHUwMDBmP3FnipaKaYWeXHUwMDExwk1cdTAwMTXBWWLc62JcdTAwMTh0pYe/qFx1MDAxZnrT2JogpVJcdTAwMTCUSrFWXrGktfmagiCvU1x1MDAxYovEsSf7ytnkWpRcdTAwMDOWrqdpXHUwMDAxmH2uru6v3/aeyuz5hLXOLza6ei9cdTAwMDGQXHUwMDBi0lx1MDAwMpBbKahUn7LcMsbDbTZfUj6YpWN3yY1Qwij+qXzm+Fx1MDAwM1JQrIDK6lx1MDAxOMGhXGaciFx1MDAwMaFcdTAwMDVJwUvYXHUwMDBlTENcdTAwMGXVNfh55eWh06ktdCxcYt+0N1bs8a6/1Vx1MDAxNEfsdPnxYctcdTAwMWPdXFyGwovxhtbN8WbucOn2uf900zxYXdmtdfJnc7xcdTAwMTOLL5dcdTAwMWFcdTAwMTKq5dxcdTAwMWTLqu2Hc/6wzNfLXHUwMDE3jy7XY+kxoKnjnmw0z3dcdTAwMWGlXFx/v8DY7Yne7Zij4lxmxl1cdTAwMDWrOTjMNVx1MDAxZvnSob2vZI+uLu5rk8aszit2d14xtr2VR2aO9rZZt7nVuyia051O9mxcdTAwMDbjtk+LfPu0c9e4PV9Z6dzd8Wp3ozGDcZ98O1tsdtuVTqOWVeaym7vcOZ/BuGeZ8+WVytFT+/mudH113qm3bvdme6dcdTAwMWJr6sZq/sRcIlx1MDAxNt4kK33tqWdwOPw2Tel3XHUwMDBi5dt7bc9U7fbOt2rrK3vPz1x1MDAwYn4rxi24sqJcdTAwMThcdTAwMDNFXHUwMDA0TEarslx0T1RcdTAwMWFWQUIn60+2gYy/zaWihkx5eJeCXHRcdTAwMTeu/Vx1MDAxOe7lLpjiVKnWOpinmCaQ0kI4PE+NXZyj1p/vmelv41xmUnk9Zlx1MDAwNLV8XHUwMDEx0nk1XHUwMDE0pTjoNsU96Fx1MDAwNTU/hMClN3NMlFx1MDAwZnoyQlx1MDAwNkxyyjVXRlN7u5l1hPYu+URcYt9Aej9NeeFC5bLer1/d6qXTnavCSfe6c3aVlFx1MDAwNrwwuoHC3ZU0XHUwMDA2TphcZn/ZgWrQQCWn8lPSUqO0z1WYSo70kFx1MDAwNtRcdTAwMWOI54NAp1x1MDAxON3AXHUwMDAyel2T+zhcYmqMXHSCXHUwMDEyXHUwMDEwR550LPStXHUwMDFivvBmRGhqXHUwMDE45Vx1MDAxZF1NUbO7YSyPbGWqckhcdTAwMTSQl1x1MDAwMalKpVx1MDAxMlx1MDAwMivILIy5nF37aD4mmsZRJ6JpiMPziW7Ut/a2lld31m17m9VcdTAwMGLnS0uLrlx1MDAxYyyMsqHWP4N2K9H+0dzBXGJY9tIlgCpGz4M5UFS2sFx1MDAxNIkp1dA9Z6hfTDDwXHUwMDEyISSwSFbpkVtcdTAwMThQQM5cckuNkPxWXHUwMDBl86/3XHUwMDAxKupcdTAwMWR8d8uUldFe8Cqgpu1SckFtoORcdTAwMDRtllx1MDAxM+Vj8GlcbsRBUZou8Vx1MDAxMUqSnZlukMlcdTAwMTmMXFxbTVx1MDAxMWaTx4heb3VrrHVXqN7teba+1r2/bayaRddcck5cdTAwMTLsLKdcdTAwMGWetLbDyoFcdTAwMWJcdTAwMWVY5amSXG54oDFmXHUwMDBlR0mzUVx1MDAwZUZqOlxmU9/M4VcrXHUwMDA3Q31tXzxyatUo+JBy4CwwkmrkXHRv4XUw7f9iyiaxVpFMrrgg4Ntb7UNcdTAwMWQt03TNVlnr4u7DxdJcdTAwMWV/WFnaldXNnVx1MDAxM7foUVtcdTAwMWP8XCKgLo7YXHUwMDAywUy40OZgXHUwMDAwXHI3hVx1MDAxOU05qVRI6nPKZuwlknaxpatHYs9ccjXVUeHQ1XitMr9cdTAwMDPoXHUwMDA0pVx1MDAwMWg5N4ifXHUwMDE5qzRCt0lUL1x1MDAwNuyJWldcdHDiMOlNuU5a3V/OXHUwMDE4n1BfnodMxtBcdTAwMDVSXHUwMDA136DWncNcdTAwMTXS23TGwjCxk5lPPiuwdG5l7Fx1MDAxNIVPxqfFLGh7XHUwMDA3SZe16lx1MDAxZIU8epLINXQ0NCCn8MrhQlx1MDAwMTMvXHUwMDE5xlx1MDAwMlx1MDAxNnpETDa0XGKsXHUwMDFkdPfEhCVU/WiCyKBcImhiJ7PFXHQmeT+D/7P28lx1MDAxOVx1MDAxYlx1MDAxM6TeXHJcdTAwMDBauaPpZFx1MDAxOFx1MDAxNXnglFxyXHUwMDAzQ1x1MDAwN1x1MDAxY6twg8I/L0q3JEiB4Fxm2tNcbkWNXHUwMDE533pcdTAwMDC+XVx1MDAwNlxmx7EkTWp8TZ/hSTGsXHUwMDA2XGawk4N0XGKt+MikyPmHOcXEyPTCYo9Masb8Zq5d2ZLFlp5cdTAwMTGBnZJBpFx1MDAxNG5KTGujbVd8Kv11q7ZcdTAwMGIn+ZWLZiGfq+j1h6PT49WnRadcdTAwMTHCUMqYpM5WXHUwMDFluI9cdTAwMTRucnTrTCHhnrLa7Fx1MDAxYytcdTAwMDF7XHKkae2p6lx1MDAxMvlIcVx1MDAwNdhgdJnAOzSVPLR8NEmIyk9cdTAwMTmenva5dnVw3b27vTg9L1d6slct+cKVnHva57yuSud1pZk72Vjh4kqZnqvktlrnXHUwMDBm57nm7Vxmxt0qZZ+aprhd7anN/LJ4PNq7za/OYNxS/aydk63n5fbq2sFBXHUwMDAz2mJ3+XiycUe2flZXsOPVj0qmT+ShXHUwMDE5wadcYl3v7md7up59zvRcdTAwMWFnm5fNbvahmLtfePVcdTAwMDPEXHUwMDA3lsN35ZRcdTAwMTTAxPCZXHT3MtBcdTAwMTa2TkhFXHUwMDA1WefYz0OQdlx1MDAwMX8jTlx1MDAwMC3jbVxc2lx1MDAxN3SlJSXFqPAhJaiPqCBcdTAwMGJcIsFMOKl01ipoLicjY4U4uWbZmD7GVMHL2Slqfov67sVV4+E82z3Y2vadji9umaSaXHSLJL9cdTAwMGX83jhmQFB4JE1RMVx1MDAxZVB0XHUwMDAxXHUwMDA37YdcdTAwMTjb+UWOK1x1MDAxMd9+ZkQ+hWZcbqQmNUxsweQzzlx0J8pcdTAwMDCPyoK+ayqVPXEy49iQztAhwOLEcCYh0CTnPlFJXSpUMEVDqEp57aTTzFWqd539dregsrmL41x1MDAwZvZcdTAwMDL+uvhNyTlcdTAwMGZbkGhccmHJhlKfQnE2My9Gpn1cZlx1MDAwNuNsXHUwMDA09XpU9iMtZ74sXtrAyVxmP1x1MDAxM/dQ7GPKrb/DcVNM/KNValVcdTAwMWHtLvYspbNcIlx1MDAwZp2gfU2+VNosP4RHrkMlu2NcdTAwMWGeUlx1MDAxZdFcdTAwMTSUbr2Z7exs3rZcdTAwMGYq9lxc1Fx1MDAwYudPZWNbi1x1MDAwZUjHQZJcdTAwMWN5YtZcdTAwMThcdTAwMWRKQ/mZue9cdTAwMDPuqFx1MDAxYlxiRd9xM7/igOGKfu9cdTAwMDdgblx1MDAwNI+DnC9cbvVbYDhSmTsqsqakclKyyeH4z1x1MDAxZv02XHT2i5X52z9aP35EpJ06XHUwMDEx0497gFSt+vdcdTAwMWb/898//vUjXHUwMDE2pEInXHUwMDFjT89cdKRcdTAwMWad+8c9Mi2S61x1MDAxY1FMn7ThXHUwMDBl72nw3Vxc2TtYO75Yvun2av1u+Trb3L5Z+Hslp0VggVuq7K60VJFLbEnoNlx1MDAwZUvB4Z5cbuHnZ0+F8oHwwKbUSlx1MDAxYavjqlx1MDAwMVxiMOxBnzlyy6RcdTAwMGVL6E90e9BDkX7rVDhcdTAwMTVXe8W8LMna/nanVci7Z7n3fSZcdTAwMTRcdTAwMTl3XHUwMDExw9zHI5olXHUwMDFhZPAwTYxwXG5ElzJytfGwV6/pXVG/r1xc7JZyLb3wiFYmoFx1MDAwM1PttYOh81x1MDAxMYYslFx1MDAwZVxmPHUjmPZcdTAwMDA+n1x1MDAxZqK5dFx1MDAwMafuXHUwMDAwQlxmOtbouOJ+JmDWOipcdTAwMTNBXHUwMDA1tNmIuVx1MDAxNlSmJMFYz1x1MDAwMs5p/us4eMy/4vzsTm+MTDy9XHUwMDE5xJZOcfNRKNZcdTAwMWVue6utXFzmuL98VShs+vra9sLDQqtcdTAwMDDyZalajLAmWm+eM2rwTCnJsD3S89DKz6FccmJA5Ysp29Ir7l1cXFx1MDAxOWuA1MNcdTAwMWFTlVx1MDAxZVxytTVcdTAwMWHu7Z1VVDf11yFjds4nfHbLrLbKMVxuSFxuhdGmXHUwMDFl7Vx1MDAwNMFFqbdbelxuh0uEOKyWSev4Nac9oemNRW1iyIVcdTAwMTGJRz74TlRcXGVyczZeXS1oxIWRVH3eUihcdTAwMDVFWYZcdTAwMWPI14BcdTAwMGJcdTAwMDbcwtLIQVx1MDAxMzc3P9hcbiZcdTAwMDNcdTAwMTgxXHUwMDAw1yi6XHUwMDBmiFxyg1x1MDAxYZRcdTAwMTbxQFx1MDAwMKfyWdyNXHUwMDA2XFzAIbbUL3nhyuFMXHUwMDE4cJFcdTAwMWHb8Fx1MDAxMrTAXHUwMDAzT0VUjKHiqczJcLGMt/BcdTAwMDeKXHUwMDA0cFx1MDAxNlT/5YxsXHUwMDEwwPb6rikjLsYztVx1MDAxZu+hXHUwMDE0ithcdTAwMDQzkoP9KGVjJpVhXHUwMDAxl3C8PYVaUl1qKezIpH6niItkwaVnVGTfx/sj/PfUqsuZZC5O/WGpXHUwMDA03eRRm+NdkVx1MDAwNVVenK5cdTAwMTC5oFKRzIKKy0i1XHUwMDAxwSntz0B7gf6G63jN/LCaavtz5iH80pjwWfR7vFx1MDAwNVx1MDAwNMFB5rlcdTAwMDIvIb4+wjlAj1x1MDAwMGdcbiP+TXXX+Fx1MDAxM5o3LSGo9oI2Wlxmqj/rcGG7ocgtXHRfXHUwMDEy4HJeUY4nvJeP6a7xVTTeZuVcdTAwMDJcdTAwMGZcdTAwMDB7XHUwMDAzJGtKXHUwMDEzVVx0s1x1MDAxYeRcIllcdTAwMDa2XHUwMDAz/cuM0iOz+p2UV6Lg0jMqslPqrvHFUrRMvm5cdTAwMWJ0e1x1MDAwMiOZ3Gu6MTdGbJmKPLfWZzPds8Ja4un+glx1MDAxNEuB9Vx1MDAwZSjMVSkqOSZ4tEWAhiNjJOXHgdNguT7Voys+w8WywFhH7f08XHUwMDE3JFx1MDAwNDGki9lAQFx1MDAxMLizcKeYXHUwMDFmLdaLjdRQv1x0N3DvMDp+qN9fn2h24DOK7+U3q1x1MDAxYrXSPFx1MDAwM8W+a6GEf7nSPNbi4LB+3c9eXe7tPGXytZ38Lz5NScybtzrxOFx1MDAwNSZBO+OmqWx2wi42N3dUvZS3/Fks96pnpU5SO99cdTAwMDVJfzPWXHUwMDA3lFx1MDAxM8s1lVx1MDAxMFx1MDAwZTter1x1MDAxN1x1MDAwNzyg3qCekVx1MDAwMbXzUFxyylCwXHUwMDE4rCFxXHUwMDEyOFx1MDAxMjH3XHUwMDA1Mlx1MDAxMFxu3FZCW1x1MDAwYlx1MDAwZm95tKKGprwnnuSOzUI1fKe2XHJcdTAwMWWqnSZcdTAwMTRcZrWkPnLaXGZVXHUwMDBihsuFPfSSaVx1MDAwMZuj8MVTh0vafHoyMoBcdTAwMTmgljKerq2scOp9vImIQTLuXWIqXHUwMDFhRZsw4lxcXHUwMDEzw75fKi2Jzcddm80s352Zw9JtbeNswWHveGAt/Fx1MDAxNsok5U5GjmOkXHUwMDEyVMzQU4FcdTAwMDNcdTAwMGXv51PHMVx0sNeBNpaq+TiKOYhccoVcdTAwMWL0+1x1MDAxNd5S5iP1KfajUTmgNJz+l3ZR+Fxy/MHziYRcdTAwMGZcdTAwMTPAvdXKQVx1MDAwMUNcdTAwMTVLNlxm1dGtSoV+olx1MDAwMFxmXHUwMDA2ZIFcdTAwMTRWK7hAXG5cdTAwMGWc5z5U+fRz2Hdjqifjsc5cYjU5+OuNh0Zn67DIurp8nlVcIvvYr32oeOJX2nxcdTAwMTdYb6SheiNORa9cdTAwMTax7oEyXFxCXHJiP+Gqzsfoe+HgmzsvvFJx7b5FoCz5K1x1MDAxY/aBhzpcdTAwMWb97FxuSJVX5LfFnz/wXcA9XGam4Vx1MDAxY1x1MDAxNJArZiM4paq4XHUwMDBlQMYrjlpNTGDz4/d+8GlcdTAwMDFVXHUwMDEzNoK6zoNi8GmPXHUwMDAyklEvx1x1MDAxY2NSN1mrp0g+72U2V2qsU3BcdTAwMWR2bJ/zxcrjdS8ppGCBUO+pIShds1xmXHUwMDE1XHJ+LZ7n6KyfqUFMXHUwMDAx5/JTYe/zQj3FIXBvjP2293OGvVx1MDAwM/dcdTAwMDaVd5xpLrSQXHUwMDExlCphXHUwMDA3zWM5RXpNQPR/Ly0y9kBRiMSSOVx1MDAxMFxcLew0pfbO9/NLxe3z1Ua2s3P6vFs5Xz1sJjVfWFx1MDAxMEViOV30Y9cl9adcdTAwMTMqelx1MDAxOWJNwEDrXHUwMDA0XHUwMDEzXHUwMDEyRFCa5OyveqnMmE5RJJH3vEUluaFQ97gm4lxcQ0T0z3/AZkbcXHUwMDA3NSggYX7dgeLsj7qql6WbdliBhVx1MDAwNDe5q6LRjMA3RZT7Vnv1IZsx7DxzvMmO6k/buzZvXHUwMDE3XFxwmVx0KGSIzpKoJGbUXHUwMDAywidm+KngXHUwMDAyKlx1MDAwNX5JckjdZ1x1MDAwNFfEpChcblx1MDAxZFxib97+0XIk4MBLY5hwbn50d6FEVSX7aEZjXHUwMDAz2TSiunptT9z21vX95dbBTqtYP3vulCqLJqo6XHUwMDE4dKtxsC50a1x1MDAxOfp6P0XXU1x1MDAwNJRcdTAwMTNUTkpHw2cgulx1MDAxNKJBXHUwMDFkr+F9yy+UXFxcdTAwMDXLTXlaTFDFWz16NOslh0dtU4tcdTAwMWT/TpI7pnetSK5OwSk8TlxiOUV6bX99u9pYW64ssZsrq263sjsrxfKiiW5cZj2Q1NTAUIMjXHUwMDFi1bJwQ4SkiEmuweRFcnVcbjDLesWOXHUwMDE31eh73qO8YujASFx1MDAwZlx1MDAxNMNcdTAwMWQ1pJ/j4eHXi+Z46pp83Vx1MDAwNYdcdTAwMGaEzvspXHUwMDAyiJ1vq+uT5ee1p9vSiaizjVx1MDAxNit3XHUwMDE3XThVXHUwMDAw06Es/ufxL1HuanigubScnFxuK71LPvr6jHRy+E+Ov/1jQ+r8/c5LXHUwMDA1JsRcdEZTZFx1MDAwNNOKXG4x6LTQ4b+O9CbnTcNwXHUwMDFhK9hcdTAwMTSBaMdup7TRazVcdTAwMWaP2oWj7exSprZReF504Vx1MDAwNX9lXHUwMDFhelUqjn8xo8LLlaR4RzBcdTAwMDFcdTAwMTMqZj9cIrxcdTAwMTUvSqI0Xnij73krXHUwMDFjmOhUTS67nFPLcCo19+9cIrsqXFxDLqp6vVx1MDAxYpQqY5Or3vWTc7O6ff1YOri/K5SzmfvNja1cdTAwMGZcdTAwMTXh/sKWTdr6gHL9Sf9ipV30zlFDfOH7eJBIRq0z5nBcdTAwMDA5kzAkQUXcvGcsrdBuPptfvyx3TUlXXHUwMDFil5vr9Wyjutr5jkOafNx/nziksOM04jUwI0CnpzhULHe6rYKo9PhqvZ4t16/Y5WN3a7FtXHUwMDFi11x1MDAxZdSLXHUwMDAyQVx1MDAwNLeS/o5oXHUwMDA3plx1MDAwMumpziB5x3Ck5lCjfyaRSFYxTi+lubtcdTAwMWZXXHUwMDBl31x1MDAxN1x1MDAxNIPnL1x1MDAxMolcdTAwMDQzk4R8YJ6yXHUwMDAzp4hEqudyXHUwMDFi5jTbLtVXL7JcdTAwMGb+/jBXc72FXHUwMDA3/qD+vpNKce5cIlx1MDAwZZmUOqDuKjC4XHUwMDE0qlx1MDAxZI5cdTAwMTJatEgkXGKIZd4k9FP9XHUwMDA2/nck0stPw127WOJxXGZVTVx1MDAxNCCfk1x1MDAwN1x1MDAxZtcun/J7/N50VO35aa3Y2imKh0Vv2qU9lDjF8TA4kpqHXG5bv0ZcIrFcdTAwMDAsXHUwMDFjsFKUXHUwMDE3XHUwMDFhPjhdpJiEQdVPa1x1MDAxM/KpvpH/XHUwMDFkilx1MDAxNIH9mHpFVLVAWmMmv1wi2FkpP4sncb99fNZcdTAwMTLqeIXll3tJ7dRcdTAwMTdcdPdcdTAwMWFcdTAwMWOeWpBrY0z0JMuLXHUwMDAwgFx1MDAwN6+TUPCh/N6Fgr3iRmrmU8+wvmE/eL5DkWZcdTAwMWaKXHUwMDE0ysdcdTAwMWZccmqkpfLhUl+pl42PW9u16sb+Wa6a7Ww1jp9b7bOLXHUwMDA11yTwxlx1MDAwMmxcdTAwMTVT1Fx1MDAxM1x1MDAxOFx1MDAxYlx1MDAxNy2TRFx1MDAxNTGtclpcdTAwMTK5XHUwMDFio0h+eShcdTAwMTK0ndNKhVx1MDAwYvh89anil0Z4yOSam1x1MDAwMLuHvzdFUm6/vN+8r+RcdTAwMGIud3dn78tn90/7+7eLLrmDjm5cdTAwMWOs13DLRm2gVXhZMlxy3WGE8mw+YXRcdTAwMWaLRuJSXG6p6Y7/30NY9Vx1MDAxOEeNyZfyXHUwMDAyXHUwMDEzXHUwMDBi61Zhv1aV+e1Ded7fq/q1XHUwMDBlq9WWXHUwMDE3TVjHhyNccoTXXHUwMDE4aqLlLL0pKrs6gKcsjKTqK2w+Wvdj0Uhcbj6lnKCD6u8kuGOikaRNjFUmUzTc2C21VU6xcrrk95aWLk6WPL9/eKiuqN+CXHUwMDFmvN+Zj1x1MDAwNivzQFx1MDAxYjhkXG5cdTAwMWNBUKnFRFmdfziSMlJgR+Z4jrBgl+Iy+dZcdTAwMGJMXHUwMDE5xpFNkYi3fNDIXHUwMDFjup1SUdqdbru6fLi3tLrgXHUwMDAxXHUwMDFkkE7oWevhSiqu8S9R9qpV4Fx1MDAxNMRXQJUyXHUwMDFiKlx1MDAxNrN44UiUSmzAwlPbz/51pJcl5pBzcjawkHJy52t5ZXWvfVgyXHLb5zJfb15cdTAwMTWP/enCiy88XHUwMDFmy6FaXHUwMDE5c9KGxPNNfOHQXHUwMDE4R+F08NCT62L98ngkLzh3Yp5nOV8vvEnnj5wlclx1MDAwMvo84aZcdKOrbVx1MDAxOL1UfvaqvFrnq0e5vaXDbFLtg4UpXCJrlYVvpbSgXFxwLXS06ImUcIC8IWavzLhTg083XHUwMDAwYlRDXHUwMDE2zlx1MDAwM/Xqg1x1MDAxOYhpRVwiwLTBfy13SnAvw0Fir8JcdTAwMGLLYIxgXHSpIYtTzi16eJjwym9zLJm4efRkRvftfbw/wn9PXHUwMDBiXzGuNrpcdTAwMTFUfXuKUKHHs7W8aVx1MDAxYlnsNs9yq9m9xtPJ+cOi45dzrVx1MDAwMy2sx8rDsNjI0YnWkrpcdTAwMDdpSWWBrPGfql4yXHUwMDFlv+RcdTAwMDbTtbCl4yqr44xcdTAwMGZ1w6PoXHUwMDA1qFx1MDAxYc6M16G0s5+8X1hcdTAwMDF9o+MjXHUwMDA3vlx1MDAwMTw3XHUwMDAwJ+5cdTAwMWU9o/s2JYBcdTAwMTPbXHIl1yNcdTAwMTRCXHUwMDFhfNRcdTAwMTRcdELqIM+Wn7ebaktt9LZrZv+2cPHB9rVfXHUwMDE4XG5cZjcj3H87klwiJMHXQt2/zPzwq+NcIoDtSMSvcXRcdTAwMTUp/ddcdTAwMDM05P+mVF+HRvThx1xmvWlcXOsvWqB6rbs0aNLzn3jpf4VcdTAwMTf0vVx1MDAwNjtcdTAwMWL61bn3+oqZ1ofgXHUwMDE2jshcdTAwMWG1ly9ccqMn57tcdTAwMDeba9vt3L19auf2enf3+0zI5YXv1+o4peQnwc17R8W+vlx1MDAwMG5WxYTW8dFcYntOfYFcdTAwMTjFQSww4LxcdFTombyR5dLh4erB4dLhRmEnXHUwMDE2aKFcdTAwMTjIr1x1MDAwMFp4OmNcdTAwMDGWkt8ypqiWloJcIigmR5noXFxfdXZZfmel+XR+o/KnK7leddFRRoVcdTAwMDNcdTAwMDOnIUTeSmM9j5w1e1x1MDAwZX/BXHUwMDBivKK9ocDEueFsJn3ZJedmgpY9XHUwMDA3rPXw3Lsuqf0zlr3vP16ZSq/83YErMu7v1pX9WVxcblx1MDAxZFx1MDAxNUqd0vbJbu5eni+v7Fxcbcxg3Ll3e4/X35/QazJRrzlBvbesnfyM97mwbLpPhfX9Zu3oaOn8pqH0tlxcfLVm7CC+xVx06nlcIljkstcxOlx1MDAwNNZcdTAwMTSc5blcdTAwMTSL3+ydycGhTGre9Mc12yfj9j4gw0nkV8vEs17iLN7rKVx1MDAwMlx1MDAxNzr7+7ndUq9QWlary5V9w1x1MDAxZVx1MDAxZmpm4cXXMFx0ibBw8OloTEfZL8TBXHUwMDA11DPFco7/O1x1MDAxMZ3aLM1yTEZZXFy7d1wi6lLrhFx1MDAwM6GvkNBxOny3WivaSq1fbd1087X8Vr1du9mehe09zrjL2ubNwVnxeblkrmuusy7nb1x1MDAxYmK5/ceb1JfLQVx1MDAxMJTL8cz+q7vU/5zMWN2R2PlH8uSLXCJcbqqkXHUwMDEwn4mVx3jLv6CNf1x1MDAwNHnORklcdTAwMDVcdTAwMDfGXHUwMDE4b2yE0msnv+qkylx1MDAwNF5cdTAwMTkhtJbOUaPfUU1izFxih+fOc5jAcHfQiVx1MDAxZOm5XHUwMDE4sdBcdTAwMDdO1OpnvCP4Y7hljlx1MDAxOSTmYlx1MDAxN4Sk7mAu9LbXbmY6cIpL76SQXHUwMDE2/ECNdlx1MDAwNJuo1c+t2i6c5FcumoV8rqLXXHUwMDFmjk6PV5+SZuU1g1MoXHUwMDFk3YMz70cmJVx1MDAwMubeYodBN2P6XHUwMDBm/U6dfiiPlnsqKq8gp6FAO3ok02m/XHUwMDBmg1x1MDAxY2BcdTAwMGaxPcZcdTAwMDNaytmhcHpcYvn7XGJ/hP+ellx1MDAxYckxXHUwMDA1OZRcdTAwMTnU/5uiIMfp4VXtxp7d3VevbkVl5ancPW1fL/o5vFx1MDAxOJQ8TD6H1zLQXr4qN60/V1x1MDAxMjjlID7u6jsmUENxqs6eULFzMVx1MDAwZVx1MDAwNjVcdTAwMGI8V8Jp+/LnpNyhV6rXXHUwMDBlX0+9c932zX/++Efr5S11/Fx1MDAxN/ZuYM7L5b/9/HG/TT8slYKgVPrbj/efXtdaXHUwMDFiVVxuhmVcIv4oX4R2+iuIyHy+2YdQL0xy7p1khmPHp8i96yyt7+5Jt3+33T81S3L7oHC8t/Cdxbm141BcdTAwMGYj9UWcRknKtTLKc2qbXHUwMDE4vqdcdTAwMGa78yMqXHUwMDAwvj+VXHUwMDBmSki0X1xmXHUwMDFkoKhtkjCSw33w6t2EpemA0uC2K/t0SKL+j1x1MDAxNlx0+o///X+AXHUwMDA1LiSoPDYt3rHwX4rnXHRm+TGTrJM79b20n5/mqu60euBqh6WDgyu119PPrq6qudzig9PZgFJcdTAwMGa19lx1MDAxNi6oXHUwMDFmrpLFbSA5QMtccjXDXHUwMDE2ao6nbVJAhkNPTFAwNzKg9CVOMZVgt2Y0SVY4T02dXHUwMDEzstpcdTAwMTZcdTAwMDSsMrCOSUflR+hcItRNitb2XHUwMDAz4FKo/+fAXHUwMDFlkZV687j/0YrFKVc2acG+XHUwMDAyt2PnO1x1MDAxNrGJsaQ28XJdXG7vjJsmXHUwMDE2bUtcXFx1MDAxNevX/Pmsfpo9uD3udcz+fnvGR1x1MDAwNNU2+VAzRaww1E7n3ZxGoqDhb6pAXHUwMDBlsqlcdTAwMDYm1X+qhM34XHUwMDAz8iDmRFxcupFjgUHEXCK1zv6AXHT90mOBv1rEWSa0Q/Rgb95/5Y/w31NHhYZUyUgyXHUwMDAyrCZcXKYporrzfnv16qD9JE+615VcdTAwMGL+VNwtZpLyaT+MxFKvMWskUlx1MDAxOXQhXHJcYlxipXqpyE1cdTAwMTWUVSBcdTAwMDVhlE6Jwm2BZ1xyRFx1MDAxZVB9XCJhnWNOe2Viwl5cZrRcdTAwMDJ0XHUwMDAyrDj1gvaxPNc4xT7Ec79B+pkqM0mbR8/Itk2J30Tqy5PjZ1x1MDAxOJW6UuHMqjT82uXiVXGn8bB0qLLtq6vDLbvfSkoxXlx1MDAxY0vqQSdcdTAwMTlcYvDrwYlcdTAwMWZcdTAwMGXrVpJcdTAwMDdcXPDXpFxmydT8TqOoRr1cdTAwMWR6YvCrh9gxXHUwMDFiXHRiXHUwMDEzykupw1x1MDAxOYyLx3xDN4wpVLeQy2WW15c24kPWlIksxtdedL1P7kPYXHUwMDEzyW4nUFx1MDAwN8M5TZL0Mcvsy81cdTAwMDZbWTncK/VcdTAwMWWuaiumktRcdTAwMGZycaDHJZdjSOxXYk/HXFySx9xsYVx1MDAxNo7ZhF7wc4s7y3Z8ocuW91x1MDAxZfafes2nfrVcbiFVv+aOelxu7O6Mhe7XQnVnXHUwMDEypCZfSYc6XHUwMDE1j3ZX4VRpaYpLm/G7ubBYXHUwMDE1Tlx1MDAwNVwiXHUwMDE5q5yyXb9cdTAwMDSr3MV6nKNgXHUwMDA189ZcIqnP2u/AZJNugsdr+1x1MDAxZu83wSCVVL6W4uRgXHUwMDFlPVx1MDAwYrmBPy+nefDTXHUwMDE5/D1vfoekgZ5pfdtk1LvkS1x1MDAxYlx1MDAwN46F3Z5cIoytWJaP4qT/pPeVLFx1MDAxZa4028vFjaRM+0VCvVx1MDAxZHfMpLhcdTAwMGWohcRXoJ7Ou2Jgz4Khbk4/XHUwMDBmgKnJk1x1MDAxM+5cdTAwMDNcdTAwMDfAXHUwMDBigv15erFzXHUwMDA1ZGZ4p1x1MDAwNj9cdTAwMWFs0pS4TOLNSiT7rGpQRmCaSlx1MDAwMlc3xbzVhyfrJ0fm1LROL8XqUVIn1C+6rvFpoMzQXHKIoVx1MDAwMkKMgsNUtIKLZJSVXHUwMDA3cFx1MDAwYiu48y65XHUwMDAyxmdBaWzc/cxoalx1MDAxNVx1MDAxZERzKdKKtJxcdTAwMWOJx6vtu6fjXHUwMDBl97ZeMmeZzHFm3nUunHGWT1x1MDAxM6NphOBcdTAwMWOK0SphJmbDxYPV/Vx1MDAxZiurR1x1MDAxYsursYT4i9OvwtN5QeFcdTAwMWavK/xn6fb2oI8leuNcdTAwMWZ/3l/WXHUwMDFlsvElbqnK7Vx1MDAxZq9cdTAwMTgmsNRotf/5rz/+9f9cdTAwMDFKsSikIn0= + + + + NFT0x123...456ASSETANCHORANCHOR-TECHNOLOGY§ORACLEPROOF-OF-CONTROLto0xaa..aaERC-69560xaa..aatoken: 2402anchor: 0x123...456{ to: 0xaa..aa, anchor: 0x123..456, signed: § } 0x..gasPayertransferAnchor( )ATTESTATION0xbb...bbsafeTransferFrom( from: 0xbb..bb, to: 0xaa..aa, tokenId: 2402)anchorByToken2402 <> 0x123...456ownerOf(2402) 0xbb...bbOFF-CHAINON-CHAINUSER DEVICE \ No newline at end of file diff --git a/assets/eip-6956/test/ERC6956.ts b/assets/eip-6956/test/ERC6956.ts new file mode 100644 index 00000000000000..01bf26982b8e67 --- /dev/null +++ b/assets/eip-6956/test/ERC6956.ts @@ -0,0 +1,355 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { createHash } from 'node:crypto'; +import { StandardMerkleTree } from "@openzeppelin/merkle-tree"; +import { ERC6956Authorization, ERC6956Role, merkleTestAnchors, NULLADDR, createAttestation} from "./commons"; +import { IERC6956AttestationLimitedInterfaceId, IERC6956InterfaceId, IERC6956FloatableInterfaceId, IERC6956ValidAnchorsInterfaceId} from "./commons"; + + + +export async function minimalAttestationExample() { + // #################################### PRELIMINARIES + /*const merkleTestAnchors = [ + ['0x' + createHash('sha256').update('TestAnchor123').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor124').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor125').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor126').digest('hex')], + ['0x' + createHash('sha256').update('SaltLeave').digest('hex')] // shall never be used on-chain! + ] + const merkleTree = StandardMerkleTree.of(merkleTestAnchors, ["bytes32"]);*/ + + // #################################### ACCOUNTS + // Alice shall get the NFT, oracle signs the attestation off-chain + const [alice, oracle] = await ethers.getSigners(); + + // #################################### CREATE AN ATTESTATION + const to = alice.address; + const anchor = merkleTestAnchors[0][0]; + // const proof = merkleTree.getProof([anchor]); + const attestationTime = Math.floor(Date.now() / 1000.0); // Now in seconds UTC + + const validStartTime = 0; + const validEndTime = attestationTime + 15 * 60; // 15 minutes valid from attestation + + // Hash and sign. In practice, oracle shall only sign when Proof-of-Control is established! + const messageHash = ethers.utils.solidityKeccak256(["address", "bytes32", "uint256", 'uint256', "uint256", "bytes32[]"], [to, anchor, attestationTime, validStartTime, validEndTime, proof]); + const sig = await oracle.signMessage(ethers.utils.arrayify(messageHash)); + // Encode + return ethers.utils.defaultAbiCoder.encode(['address', 'bytes32', 'uint256', 'uint256', 'uint256', 'bytes32[]', 'bytes'], [to, anchor, attestationTime, validStartTime, validStartTime, proof, sig]); +} + +describe("ERC6956: Asset-Bound NFT --- Basics", function () { + // Fixture to deploy the abnftContract contract and assigne roles. + // Besides owner there's user, minter and burner with appropriate roles. + async function deployAbNftFixture() { + // Contracts are deployed using the first signer/account by default + const [owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider ] = await ethers.getSigners(); + + const AbNftContract = await ethers.getContractFactory("ERC6956"); + //const burnAuthorization = ERC6956Authorization.ALL; + //const approveAuthorization = ERC6956Authorization.ALL; + + const abnftContract = await AbNftContract.connect(owner).deploy("Asset-Bound NFT test", "ABNFT"); + await abnftContract.connect(owner).updateMaintainer(maintainer.address, true); + + await expect(abnftContract.connect(maintainer).updateOracle(oracle.address, true)) + .to.emit(abnftContract, "OracleUpdate") + .withArgs(oracle.address, true); + + + return { abnftContract, owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider }; + } + + async function deployABTandMintTokenToAlice() { + // Contracts are deployed using the first signer/account by default + const {abnftContract, owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider} = await deployAbNftFixture(); + + const anchor = merkleTestAnchors[0][0]; + const mintAttestationAlice = await createAttestation(alice.address, anchor, oracle); // Mint to alice + + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes)"](mintAttestationAlice)) + .to.emit(abnftContract, "Transfer") // Standard ERC721 event + .withArgs(NULLADDR, alice.address, 1); + + return { abnftContract, owner, maintainer, oracle, mintAttestationAlice, anchor, alice, bob, mallory, hacker, carl, gasProvider }; + } + + + describe("Deployment & Settings", function () { + it("Should implement EIP-165 support the EIP-6956 interface", async function () { + const { abnftContract } = await loadFixture(deployAbNftFixture); + expect(await abnftContract.supportsInterface(IERC6956InterfaceId)).to.equal(true); + expect(await abnftContract.supportsInterface(IERC6956ValidAnchorsInterfaceId)).to.equal(false); + expect(await abnftContract.supportsInterface(IERC6956FloatableInterfaceId)).to.equal(false); + expect(await abnftContract.supportsInterface(IERC6956AttestationLimitedInterfaceId)).to.equal(false); + }); + }); + + +describe("Authorization Map tests", function () { + it("SHOULD interpret ERC6956Authorization correctly", async function () { + // Create the message to sign + const { abnftContract } = await loadFixture(deployAbNftFixture); + + // OWNER + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.NONE))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ISSUER))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ASSET))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER_AND_ASSET))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER_AND_ISSUER))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ASSET_AND_ISSUER))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.OWNER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ALL))) + .to.be.equal(true); + + // ISSUER + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.NONE))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ISSUER))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ASSET))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER_AND_ASSET))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER_AND_ISSUER))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ASSET_AND_ISSUER))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ISSUER, await abnftContract.createAuthorizationMap(ERC6956Authorization.ALL))) + .to.be.equal(true); + + + // ASSET + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.NONE))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.ISSUER))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.ASSET))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER_AND_ASSET))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.OWNER_AND_ISSUER))) + .to.be.equal(false); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.ASSET_AND_ISSUER))) + .to.be.equal(true); + await expect(await abnftContract.hasAuthorization(ERC6956Role.ASSET, await abnftContract.createAuthorizationMap(ERC6956Authorization.ALL))) + .to.be.equal(true); + }); +}); + + + describe("Attestation-based transfers", function () { + it("SHOULD not allow non-trusted oracles to issue attestation", async function () { + // Create the message to sign + const { abnftContract, oracle, mallory, gasProvider } = await loadFixture(deployAbNftFixture); + + const to = "0x1234567890123456789012345678901234567890"; + const anchor = merkleTestAnchors[0][0]; + const attestation = await createAttestation(to, anchor, oracle); + + const fraudAttestation = await createAttestation(to, anchor, mallory); + await expect(abnftContract['transferAnchor(bytes)'](fraudAttestation)) + .to.be.revertedWith("ERC6956-E8"); + }); + + it("SHOULD allow mint and transfer with valid attestations", async function() { + const { abnftContract, oracle, mintAttestationAlice, anchor, alice, bob, hacker, gasProvider } = await loadFixture(deployABTandMintTokenToAlice); + + const attestationBob = await createAttestation(bob.address, anchor, oracle); // Mint to alice + + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes)"](attestationBob)) + .to.emit(abnftContract, "Transfer") // Standard ERC721 event + .withArgs(alice.address, bob.address, 1) + .to.emit(abnftContract, "AnchorTransfer") + .withArgs(alice.address, bob.address, anchor, 1); + + // Token is now at bob... so alice may hire a hacker quickly and re-use her attestation to get + // the token back from Bob ... which shall of course not work + await expect(abnftContract.connect(hacker)["transferAnchor(bytes)"](mintAttestationAlice)) + .to.revertedWith("ERC6956-E9") // Standard ERC721 event + }) + + + it("SHOULDN'T allow safeTransfer per default", async function() { + const { abnftContract, alice, bob} = await loadFixture(deployABTandMintTokenToAlice); + + await expect(abnftContract.connect(alice).transferFrom(alice.address, bob.address, 1)) + .to.revertedWith("ERC6956-E5"); + }) + + it("SHOULDN'T allow approveAnchor followed by safeTransfer when anchor not floating", async function() { + const { abnftContract, anchor, oracle, alice, bob, gasProvider, mallory,carl} = await loadFixture(deployABTandMintTokenToAlice); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + const attestationBob = await createAttestation(bob.address, anchor, oracle); // Mint to alice + + // somebody approves himself via attestation approves bob to act on her behalf + await expect(abnftContract.connect(gasProvider)["approveAnchor(bytes)"](attestationBob)) + .to.emit(abnftContract, "Approval") // Standard ERC721 event + .withArgs(await abnftContract.ownerOf(tokenId), bob.address, tokenId); + + // Should not allow mallory to transfer, since only bob is approved + await expect(abnftContract.connect(mallory).transferFrom(alice.address, bob.address, 1)) + .to.revertedWith("ERC721: caller is not token owner or approved"); + + // Even though Bob is approved, cannot transfer, since anchor is not floating + await expect(abnftContract.connect(bob).transferFrom(alice.address, carl.address, tokenId)) + .to.revertedWith("ERC6956-E5"); + }) + + it("SHOULDN't allow using attestations before validity ", async function() { + const { abnftContract, maintainer, oracle, alice } = await loadFixture(deployAbNftFixture); + const anchor = merkleTestAnchors[0][0]; + + // Let the oracle create an valid attestation (from the oracle's view) + const curTime = Math.floor(Date.now() / 1000.0); + const twoMinInFuture = curTime + 2 * 60; + const attestationAlice = await createAttestation(alice.address, anchor, oracle, twoMinInFuture); // Mint to alice + await expect(abnftContract.connect(alice)["transferAnchor(bytes)"](attestationAlice)) + .to.revertedWith("ERC6956-E10") + }) + }); + + describe("ERC721Burnable-compatible behavior", function () { + it("SHOULD burn like ERC-721 (direct)", async function() { + const { abnftContract, anchor, alice, bob} = await loadFixture(deployABTandMintTokenToAlice); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + // Let bob try to burn... should not work + await expect(abnftContract.connect(bob).burn(tokenId)) + .to.revertedWith("ERC6956-E2"); + + // Alice then burns, which shall be transaction to 0x0 + await expect(abnftContract.connect(alice).burn(tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs( alice.address,NULLADDR, tokenId); + }) + it("SHOULD burn like ERC-721 (approved)", async function() { + const { abnftContract, owner, maintainer, oracle, mintAttestationAlice, anchor, alice, bob, mallory, hacker } = await loadFixture(deployABTandMintTokenToAlice); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + // alice approves bob to act on her behalf + await expect(abnftContract.connect(alice).setApprovalForAll(bob.address, true)) + .to.emit(abnftContract, "ApprovalForAll") // Standard ERC721 event + .withArgs(alice.address, bob.address, true); + + // Let mallory try to burn... should not work + await expect(abnftContract.connect(mallory).burn(tokenId)) + .to.revertedWith("ERC6956-E2"); + + // Bob is approved, so bob can burn + await expect(abnftContract.connect(bob).burn(tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address,NULLADDR, tokenId) + .to.emit(abnftContract, "AnchorTransfer") + .withArgs(alice.address,NULLADDR, anchor, tokenId); + }) + + it("SHOULD allow issuer to burn", async function() { + const { abnftContract, owner, maintainer, oracle, mintAttestationAlice, anchor, alice, bob, mallory, hacker } = await loadFixture(deployABTandMintTokenToAlice); + + const tokenId = await abnftContract.tokenByAnchor(anchor); + + await abnftContract.connect(maintainer).updateBurnAuthorization(ERC6956Authorization.ISSUER); + + // Let mallory try to burn... should not work + await expect(abnftContract.connect(mallory).burn(tokenId)) + .to.revertedWith("ERC6956-E2"); + + // Bob is approved, so bob can burn + await expect(abnftContract.connect(maintainer).burn(tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address,NULLADDR, tokenId); + }) + + it("SHOULD burn like ERC-721 (via attestation-approved)", async function() { + const { abnftContract, oracle, anchor, alice, bob, mallory, hacker } = await loadFixture(deployABTandMintTokenToAlice); + const tokenId = await abnftContract.tokenByAnchor(anchor); + const attestationBob = await createAttestation(bob.address, anchor, oracle); // Mint to alice + + // somebody approves himself via attestation approves bob to act on her behalf + await expect(abnftContract.connect(hacker)["approveAnchor(bytes)"](attestationBob)) + .to.emit(abnftContract, "Approval") // Standard ERC721 event + .withArgs(await abnftContract.ownerOf(tokenId), bob.address, tokenId); + + // Let mallory try to burn... should not work + await expect(abnftContract.connect(mallory).burn(tokenId)) + .to.revertedWith("ERC6956-E2"); + + // Bob is approved, so bob can burn + await expect(abnftContract.connect(bob).burn(tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address,NULLADDR, tokenId); + }) + + it("SHOULD burn like ERC-721 (attestation)", async function() { + const { abnftContract, oracle, mintAttestationAlice, anchor, alice, bob, mallory } = await loadFixture(deployABTandMintTokenToAlice); + const tokenId = await abnftContract.tokenByAnchor(anchor); + const burnAttestation = await createAttestation(bob.address, anchor, oracle); // Mint to alice + + // Let mallory try to burn a token based on the creation anchor.. + await expect(abnftContract.connect(mallory)["burnAnchor(bytes)"](mintAttestationAlice)) + .to.revertedWith("ERC6956-E9"); + + // Now, using a fresh attestation, the same guy can burn + await expect(abnftContract.connect(mallory)["burnAnchor(bytes)"](burnAttestation)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address,NULLADDR, tokenId); + }) + + + it("SHOULD use same tokenId when anchor is used again after burning", async function() { + const { abnftContract, oracle, anchor, alice, bob, mallory } = await loadFixture(deployABTandMintTokenToAlice); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + // Alice then burns her token, since she does no longer like it in her wallet. This shall be a transaction to 0x0 + await expect(abnftContract.connect(alice).burn(tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs( alice.address,NULLADDR, tokenId); + + // Bob gets the ASSET, confirmed by ORACLE. Since Alice burned tokenId 1 before, but we have the same anchor + // it is expected that BOB gets a new NFT with same tokenId + const attestationBob = await createAttestation(bob.address, anchor, oracle); // Mint to alice + await expect(abnftContract.connect(mallory)["transferAnchor(bytes)"](attestationBob)) + .to.emit(abnftContract, "Transfer") // Standard ERC721 event + .withArgs(NULLADDR, bob.address, tokenId); + }) +}); + + +describe("Metadata tests", function () { + it("SHOULD allow only maintainer to update baseURI", async function () { + // Create the message to sign + const { abnftContract, maintainer, mallory } = await loadFixture(deployABTandMintTokenToAlice); + + await expect(abnftContract.connect(mallory).updateBaseURI("http://test.xyz/")) + .to.revertedWith("ERC6956-E1"); + + await abnftContract.connect(maintainer).updateBaseURI("http://test.xyz/"); + // FIXME event would be nice + }); + + it("SHOULD use anchor for tokenURI", async function () { + // Create the message to sign + const { abnftContract, anchor, maintainer, alice, mallory } = await loadFixture(deployABTandMintTokenToAlice); + await abnftContract.connect(maintainer).updateBaseURI("http://test.xyz/collection/"); + + expect(await abnftContract.tokenURI(1)) + .to.be.equal("http://test.xyz/collection/0xaa0c61ccb0c754f1c68c699990a456c6073aaa28109c1bd83880c49dcece3d65"); + }); +}); + + +}); diff --git a/assets/eip-6956/test/ERC6956Full.ts b/assets/eip-6956/test/ERC6956Full.ts new file mode 100644 index 00000000000000..fd48f5ce7c2267 --- /dev/null +++ b/assets/eip-6956/test/ERC6956Full.ts @@ -0,0 +1,445 @@ +import { time, loadFixture } from "@nomicfoundation/hardhat-network-helpers"; +import { expect } from "chai"; +import { ethers } from "hardhat"; +import { createHash } from 'node:crypto'; +import { StandardMerkleTree } from "@openzeppelin/merkle-tree"; +import { float } from "hardhat/internal/core/params/argumentTypes"; +import { ERC6956Authorization, merkleTestAnchors, NULLADDR, AttestedTransferLimitUpdatePolicy, invalidAnchor, createAttestationWithData} from "./commons"; +import { IERC6956AttestationLimitedInterfaceId, IERC6956InterfaceId, IERC6956FloatableInterfaceId, IERC6956ValidAnchorsInterfaceId} from "./commons"; + +export enum FloatState { + Default, // 0, inherits from floatAll + Floating, // 1 + Anchored // 2 +} + +describe("ERC6956: Asset-Bound NFT --- Full", function () { + // Fixture to deploy the abnftContract contract and assigne roles. + // Besides owner there's user, minter and burner with appropriate roles. + async function deployAbNftFixture() { + // Contracts are deployed using the first signer/account by default + const [owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider ] = await ethers.getSigners(); + + return actuallyDeploy(10, AttestedTransferLimitUpdatePolicy.FLEXIBLE); + } + + async function deployAbNftAndMintTokenToAliceFixture() { + // Contracts are deployed using the first signer/account by default + const {abnftContract, merkleTree, owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider} = await deployAbNftFixture(); + + const anchor = merkleTestAnchors[0][0]; + const [mintAttestationAlice, dataAlice] = await createAttestationWithData(alice.address, anchor, oracle, merkleTree); // Mint to alice + + const expectedTokenId = 1; + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](mintAttestationAlice, dataAlice)) + .to.emit(abnftContract, "Transfer") // Standard ERC721 event + .withArgs(NULLADDR, alice.address, expectedTokenId) + + return { abnftContract, merkleTree, owner, maintainer, oracle, mintAttestationAlice, anchor, alice, bob, mallory, hacker, carl, gasProvider }; + } + + async function actuallyDeploy(attestationLimitPerAnchor: number, limitUpdatePolicy: AttestedTransferLimitUpdatePolicy) { + const [owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider ] = await ethers.getSigners(); + + const AbNftContract = await ethers.getContractFactory("ERC6956Full"); + + const abnftContract = await AbNftContract.connect(owner).deploy("Asset-Bound NFT test", "ABNFT", limitUpdatePolicy); + await abnftContract.connect(owner).updateMaintainer(maintainer.address, true); + + // set attestation Limit per anchor + await abnftContract.connect(maintainer).updateGlobalAttestationLimit(attestationLimitPerAnchor); + + // Create Merkle Tree + const merkleTree = StandardMerkleTree.of(merkleTestAnchors, ["bytes32"]); + await abnftContract.connect(maintainer).updateValidAnchors(merkleTree.root); + + await expect(abnftContract.connect(maintainer).updateOracle(oracle.address, true)) + .to.emit(abnftContract, "OracleUpdate") + .withArgs(oracle.address, true); + + // Uncomment to see the merkle tree. + // console.log(merkleTree.dump()); + + return { abnftContract, merkleTree, owner, maintainer, oracle, alice, bob, mallory, hacker, carl, gasProvider }; + } + + async function deployForAttestationLimit(limit: number, policy: AttestedTransferLimitUpdatePolicy) { + return actuallyDeploy(limit, policy); + } + + describe("Deployment & Settings", function () { + it("Should implement EIP-165 support the EIP-6956 interface", async function () { + const { abnftContract } = await loadFixture(deployAbNftFixture); + + expect(await abnftContract.supportsInterface(IERC6956InterfaceId)).to.equal(true); + expect(await abnftContract.supportsInterface(IERC6956FloatableInterfaceId)).to.equal(true); + expect(await abnftContract.supportsInterface(IERC6956ValidAnchorsInterfaceId)).to.equal(true); + expect(await abnftContract.supportsInterface(IERC6956AttestationLimitedInterfaceId)).to.equal(true); + }); + }); + + +describe("Valid Anchors (merkle-trees)", function () { + it("SHOULDN't allow attesting arbitrary anchors", async function() { + const { abnftContract, merkleTree, maintainer, oracle, alice, hacker } = await loadFixture(deployAbNftFixture); + + // Publish root node of a made up tree, s.t. all proofs we use are from a different tree + const madeUpRootNode = '0xaaaaaaaab0c754f1c68c699990a456c6073aaa28109c1bd83880c49dcece3f65'; // random string + abnftContract.connect(maintainer).updateValidAnchors(madeUpRootNode) + const anchor = merkleTestAnchors[0][0]; + + // Let the oracle create an valid attestation (from the oracle's view) + const [attestationAlice, dataAlice] = await createAttestationWithData(alice.address, anchor, oracle, merkleTree); // Mint to alice + await expect(abnftContract.connect(hacker)["transferAnchor(bytes,bytes)"](attestationAlice, dataAlice)) + .to.revertedWith("ERC6956-E26") + }); +}); + +describe("Anchor-Floating", function () { + it("SHOULD only allow maintainer to specify canStartFloating and canStopFloating", async function () { + const { abnftContract, merkleTree, owner, maintainer, mallory } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + + await expect(abnftContract.connect(mallory).updateFloatingAuthorization(ERC6956Authorization.ALL, ERC6956Authorization.ALL)) + .to.revertedWith("ERC6956-E1"); + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.ISSUER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.ISSUER, maintainer.address); + }); + + it("SHOULD only allow maintainer to modify floatAll behavior w/o affecting previous tokens", async function () { + const { abnftContract, merkleTree, anchor, owner, maintainer, alice, bob, oracle, mallory, gasProvider } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + + // --------------------------------------------------------------------------------- ALL FLOATING = FALSE + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.ISSUER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.ISSUER, maintainer.address); + + // anchor does not float by default + // FLOATING ALL, so both have to float + expect(await abnftContract.floating(anchor)) + .to.be.equal(false); // one was used to mint + + // Now alice, as the owner decides to make it explicitely floatable + expect(await abnftContract.connect(alice).float(anchor, FloatState.Floating)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, 1, FloatState.Floating, alice.address) + + // It is now explicitely floatable + expect(await abnftContract.floating(anchor)) + .to.be.equal(true); // one was used to mint + + + // Mallory mustnot be able to change default behavior + await expect(abnftContract.connect(mallory).floatAll(true)) + .to.revertedWith("ERC6956-E1"); + + // --------------------------------------------------------------------------------- ALL FLOATING = TRUE + // Maintainer must be able to update + await expect(abnftContract.connect(maintainer).floatAll(true)) + .to.emit(abnftContract, "FloatingAllStateChange") + .withArgs(true, maintainer.address); + + const implicitFloatingAnchor = merkleTestAnchors[1][0]; + const [mintToBobAttestation, mintToBobData] = await createAttestationWithData(bob.address, implicitFloatingAnchor, oracle, merkleTree); // Mint to alice + const expectedTokenId = 2; + + // Mint a new token... + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](mintToBobAttestation, mintToBobData)) + .to.emit(abnftContract, "Transfer") + .withArgs(NULLADDR, bob.address, expectedTokenId) + + // FLOATING ALL, so both have to float + expect(await abnftContract.floating(anchor)) + .to.be.equal(true); // one was used to mint + + expect(await abnftContract.floating(implicitFloatingAnchor)) + .to.be.equal(true); // one was used to mint + + // --------------------------------------------------------------------------------- ALL FLOATING = FALSE + // REVERT THE FLOATING .... Maintainer must be able to update + await expect(abnftContract.connect(maintainer).floatAll(false)) + .to.emit(abnftContract, "FloatingAllStateChange") + .withArgs(false, maintainer.address); + + + // we expect the original anchor for alice to not be floating, and the new anchor from float to be floating + expect(await abnftContract.floating(anchor)) + .to.be.equal(true); + + expect(await abnftContract.floating(implicitFloatingAnchor)) + .to.be.equal(false); // this was only floating because of floatAll at the time of mint... + }); + + it("SHOULD allow owner to float token only when OWNER is allowed", async function () { + const { abnftContract, anchor, maintainer, alice, mallory } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.ASSET_AND_ISSUER, ERC6956Authorization.ASSET_AND_ISSUER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.ASSET_AND_ISSUER, ERC6956Authorization.ASSET_AND_ISSUER, maintainer.address); + + await expect(abnftContract.connect(alice).float(anchor, FloatState.Floating)) + .to.revertedWith("ERC6956-E21") + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.OWNER_AND_ASSET)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.OWNER_AND_ASSET, maintainer.address); + + await expect(abnftContract.connect(alice).float(anchor, FloatState.Floating)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, tokenId, FloatState.Floating, alice.address); + }); + + it("SHOULD only allow owner to transfer token when floating", async function () { + const { abnftContract, anchor, maintainer, alice, bob, mallory } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.OWNER_AND_ASSET)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.OWNER_AND_ASSET, maintainer.address); + + await expect(abnftContract.connect(alice).float(anchor, FloatState.Floating)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, tokenId, FloatState.Floating, alice.address); + + await expect(abnftContract.connect(mallory).transferFrom(alice.address, mallory.address, tokenId)) + .to.revertedWith("ERC721: caller is not token owner or approved"); + + await expect(abnftContract.connect(alice).transferFrom(alice.address, bob.address, tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address,bob.address, tokenId); + }); + + it("SHOULDN'T allow owner to transfer token when explicitely marked anchored", async function () { + const { abnftContract, anchor, maintainer, alice, bob, mallory } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.ISSUER, ERC6956Authorization.ISSUER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.ISSUER, ERC6956Authorization.ISSUER, maintainer.address); + + // Maintainer must be able to update + await expect(abnftContract.connect(maintainer).floatAll(true)) + .to.emit(abnftContract, "FloatingAllStateChange") + .withArgs(true, maintainer.address); + + expect(await abnftContract.floating(anchor)) + .to.be.equal(true); // one was used to mint + + await expect(abnftContract.connect(maintainer).float(anchor, FloatState.Anchored)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, tokenId, FloatState.Anchored, maintainer.address); + + expect(await abnftContract.floating(anchor)) + .to.be.equal(false); // one was used to mint + + await expect(abnftContract.connect(alice).transferFrom(alice.address, bob.address, tokenId)) + .to.revertedWith("ERC6956-E5") + }); + + + it("SHOULD allow maintainer to float ANY token only when ISSUER is allowed", async function () { + const { abnftContract, anchor, maintainer, mallory } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.OWNER_AND_ASSET)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER_AND_ASSET, ERC6956Authorization.OWNER_AND_ASSET, maintainer.address); + + await expect(abnftContract.connect(maintainer).float(anchor, FloatState.Floating)) + .to.revertedWith("ERC6956-E21") + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.ISSUER, ERC6956Authorization.ISSUER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.ISSUER, ERC6956Authorization.ISSUER, maintainer.address); + + await expect(abnftContract.connect(maintainer).float(anchor, FloatState.Floating)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, tokenId, FloatState.Floating, maintainer.address); + }); + + it("SHOULD allow maintainer to float HIS OWN token when OWNER is allowed", async function () { + const { abnftContract, anchor, alice, maintainer, oracle, merkleTree, gasProvider } = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + + // Anchor should not be floating by default... + expect(await abnftContract.floating(anchor)) + .to.be.equal(false); // one was used to mint + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER, ERC6956Authorization.OWNER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER, ERC6956Authorization.OWNER, maintainer.address); + + await expect(abnftContract.connect(maintainer).float(anchor, FloatState.Floating)) + .to.revertedWith("ERC6956-E21") + + const [attestationMaintainer, dataMaintainer] = await createAttestationWithData(maintainer.address, anchor, oracle, merkleTree); + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](attestationMaintainer, dataMaintainer)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address, maintainer.address, tokenId) + + // Now maintainer owns the token, hence he is owner and can indeed change floating + await expect(abnftContract.connect(maintainer).float(anchor, FloatState.Floating)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, tokenId, FloatState.Floating, maintainer.address); + + expect(await abnftContract.floating(anchor)) + .to.be.equal(true); // one was used to mint + }); + + it("SHOULD allow approveAnchor followed by safeTransfer when anchor IS floating", async function() { + const { abnftContract, anchor, maintainer, oracle, merkleTree, alice, bob, gasProvider, mallory,carl} = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + const [attestationBob, dataBob] = await createAttestationWithData(bob.address, anchor, oracle, merkleTree); // Transfer to bob + + await expect(abnftContract.connect(maintainer).updateFloatingAuthorization(ERC6956Authorization.OWNER, ERC6956Authorization.OWNER)) + .to.emit(abnftContract, "FloatingAuthorizationChange") + .withArgs(ERC6956Authorization.OWNER, ERC6956Authorization.OWNER, maintainer.address); + + // somebody approves himself via attestation approves bob to act on her behalf + await expect(abnftContract.connect(gasProvider)["approveAnchor(bytes,bytes)"](attestationBob,dataBob)) + .to.emit(abnftContract, "Approval") // Standard ERC721 event + .withArgs(await abnftContract.ownerOf(tokenId), bob.address, tokenId); + + // Should not allow mallory to transfer, since only bob is approved + await expect(abnftContract.connect(mallory).transferFrom(alice.address, bob.address, 1)) + .to.revertedWith("ERC721: caller is not token owner or approved"); + + // Bob makes it floatable (which is possible, because he is approved) + await expect(abnftContract.connect(bob).float(anchor, FloatState.Floating)) + .to.emit(abnftContract, "FloatingStateChange") + .withArgs(anchor, tokenId, FloatState.Floating, bob.address); + + // Bob transfers it... + await expect(abnftContract.connect(bob).transferFrom(alice.address, carl.address, tokenId)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address,carl.address, tokenId); + }) +}); + +describe("Attested Transfer Limits", function () { + it("SHOULD count attested transfers (transfer, burn, approve)", async function () { + const { abnftContract, anchor, maintainer, oracle, merkleTree, alice, bob, gasProvider, mallory,carl} = await loadFixture(deployAbNftAndMintTokenToAliceFixture); + const tokenId = await abnftContract.tokenByAnchor(anchor); + const [attestationBob, dataBob] = await createAttestationWithData(bob.address, anchor, oracle, merkleTree); // Mint to alice + const [attestationCarl, dataCarl] = await createAttestationWithData(carl.address, anchor, oracle, merkleTree); // Mint to alice + + + // Transfers shall be counted - also the one from the fixture + expect(await abnftContract.attestationsUsedByAnchor(anchor)) + .to.be.equal(1); + + // Should increase count by 1 + await expect(abnftContract["approveAnchor(bytes,bytes)"](attestationBob, dataBob)) + .to.emit(abnftContract, "Approval") // Standard ERC721 event + .withArgs(await abnftContract.ownerOf(tokenId), bob.address, tokenId); + + // Should increase count by 1 + await expect(abnftContract["burnAnchor(bytes,bytes)"](attestationCarl, dataCarl)) + .to.emit(abnftContract, "Transfer") + .withArgs(alice.address, NULLADDR, tokenId); + + // InitialMint + Approve + Burns shall also be counted - also the one from the fixture + expect(await abnftContract.attestationsUsedByAnchor(anchor)) + .to.be.equal(3); + + // Should return 0 for invalid anchors + expect(await abnftContract.attestationsUsedByAnchor(invalidAnchor)) + .to.be.equal(0); + }); + + it("SHOULD allow maintainer to update global attestation limit", async function () { + const { abnftContract, maintainer, oracle, merkleTree, alice, bob, gasProvider, mallory,carl} = await deployForAttestationLimit(10, AttestedTransferLimitUpdatePolicy.FLEXIBLE); + + await expect(abnftContract.connect(mallory).updateGlobalAttestationLimit(5)) + .to.revertedWith("ERC6956-E1"); + + // Should be able to update + await expect(abnftContract.connect(maintainer).updateGlobalAttestationLimit(5)) + .to.emit(abnftContract, "GlobalAttestationLimitUpdate") // Standard ERC721 event + .withArgs(5, maintainer.address); + + // Check effect, but requesting transfers left from a non-existent anchor + expect(await abnftContract.attestationUsagesLeft(invalidAnchor)) + .to.be.equal(5); + }); + + it("Should allow maintainer to update anchor-based attestation limit w/o changing global limits", async function () { + const globalLimit = 10; + const specificAnchorLimit = 5; + const { abnftContract, maintainer, oracle, merkleTree, alice, bob, gasProvider, mallory,carl} = await deployForAttestationLimit(globalLimit, AttestedTransferLimitUpdatePolicy.FLEXIBLE); + + const anchor = merkleTestAnchors[0][0]; + const [mintAttestationAlice, mintDataAlice] = await createAttestationWithData(alice.address, anchor, oracle, merkleTree); // Mint to alice + const tokenId = 1; + + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](mintAttestationAlice, mintDataAlice)) + .to.emit(abnftContract, "Transfer") // Standard ERC721 event + .withArgs(NULLADDR, alice.address, tokenId); + + + // Note that an anchor does not need to exist yet for playing with the limits + // Check effect, but requesting transfers left from a non-existent anchor + expect(await abnftContract.attestationUsagesLeft(invalidAnchor)) + .to.be.equal(globalLimit); + + // Should be able to update + await expect(abnftContract.connect(maintainer).updateAttestationLimit(anchor, specificAnchorLimit)) + .to.emit(abnftContract, "AttestationLimitUpdate") // Standard ERC721 event + .withArgs(anchor, tokenId, specificAnchorLimit, maintainer.address); + + // Check unchanged global effect, but requesting transfers left from a non-existent anchor + expect(await abnftContract.attestationUsagesLeft(invalidAnchor)) + .to.be.equal(globalLimit); + + // Check verify effect + expect(await abnftContract.attestationUsagesLeft(anchor)) + .to.be.equal(specificAnchorLimit-1); // 1 has been used to mint + }); + + it("Should enforce anchor limits (global + local)", async function () { + const globalLimit = 2; + const specificAnchorLimit = 1; + const { abnftContract, maintainer, oracle, merkleTree, alice, bob, gasProvider, mallory,carl, hacker} = await deployForAttestationLimit(globalLimit, AttestedTransferLimitUpdatePolicy.FLEXIBLE); + const anchor = merkleTestAnchors[0][0]; // can be transferred twice + const limitedAnchor = merkleTestAnchors[1][0]; // can be transferred once + + const [anchorToAlice, anchorToAliceData] = await createAttestationWithData(alice.address, anchor, oracle, merkleTree); // Mint to alice + const [anchorToBob, anchorToBobData] = await createAttestationWithData(bob.address, anchor, oracle, merkleTree); // Transfer to bob + const [anchorToHacker, anchorToHackerData] = await createAttestationWithData(hacker.address, anchor, oracle, merkleTree); // Limit reached! + + const [limitedAnchorToCarl, limitedAnchorToCarlData] = await createAttestationWithData(carl.address, limitedAnchor, oracle, merkleTree); // Mint to carl + const [limitedAnchorToMallory, limitedAnchorToMalloryData] = await createAttestationWithData(mallory.address, limitedAnchor, oracle, merkleTree); // Limit reached! + + expect(await abnftContract.attestationUsagesLeft(anchor)) + .to.be.equal(globalLimit); + + // ####################################### FIRST ANCHOR + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](anchorToAlice, anchorToAliceData)) + .to.emit(abnftContract, "Transfer"); + + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](anchorToBob, anchorToBobData)) + .to.emit(abnftContract, "Transfer"); + + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](anchorToHacker, anchorToHackerData)) + .to.revertedWith("ERC6956-E24"); + + // ###################################### SECOND ANCHOR + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](limitedAnchorToCarl, limitedAnchorToCarlData)) + .to.emit(abnftContract, "Transfer"); + + // Update anchor based limit + await expect(abnftContract.connect(maintainer).updateAttestationLimit(limitedAnchor, specificAnchorLimit)) + .to.emit(abnftContract, "AttestationLimitUpdate") + .withArgs(limitedAnchor, 2, specificAnchorLimit, maintainer.address); + + expect(await abnftContract.attestationUsagesLeft(limitedAnchor)) + .to.be.equal(specificAnchorLimit-1); // one was used to mint + + await expect(abnftContract.connect(gasProvider)["transferAnchor(bytes,bytes)"](limitedAnchorToMallory, limitedAnchorToMalloryData)) + .to.revertedWith("ERC6956-E24"); + }); +}); + +}); diff --git a/assets/eip-6956/test/commons.ts b/assets/eip-6956/test/commons.ts new file mode 100644 index 00000000000000..9b411c3e970bec --- /dev/null +++ b/assets/eip-6956/test/commons.ts @@ -0,0 +1,77 @@ +import { ethers } from "hardhat"; +import { createHash } from 'node:crypto'; +import { StandardMerkleTree } from "@openzeppelin/merkle-tree"; +import { float } from "hardhat/internal/core/params/argumentTypes"; + + +export enum ERC6956Authorization { + NONE,// = 0, // None of the above - a 1:1 relationship is maintained + OWNER,// = (1 << 1), // The owner of the token, i.e. the digital representation + ISSUER,// = (1 << 2), // The issuer of the tokens, i.e. this smart contract + ASSET,// = (1<< 3), // The asset, i.e. via attestation + OWNER_AND_ISSUER,// = (1<<1) | (1<<2), + OWNER_AND_ASSET,// = (1<<1) | (1<<3), + ASSET_AND_ISSUER,// = (1<<3) | (1<<2), + ALL// = (1<<1) | (1<<2) | (1<<3) // Owner + Issuer + Asset + } + +export enum ERC6956Role { + OWNER, + ISSUER, + ASSET + } + +export enum AttestedTransferLimitUpdatePolicy { + IMMUTABLE, + INCREASE_ONLY, + DECREASE_ONLY, + FLEXIBLE + } + +export const invalidAnchor = '0x' + createHash('sha256').update('TestAnchor1239').digest('hex'); +export const NULLADDR = ethers.utils.getAddress('0x0000000000000000000000000000000000000000'); + + // Needs to be an odd number of anchors to test the edge case of the merkle- + // tree: Nodes with only one leaf. + // Also: When building the tree (see buildMerkleTree fixture) those hashes are + // hashed again. This is intended because of the way Merkle-Proof and our + // smart contract works: + // Proof = H(leave) + H(L1) + H(L0) + // Our contract uses hashed anchor numbers as identifiers. + // Hence if we use direct anchor number checksums, H(leave) would + // be an actually valid anchor number on the smart contract. + export const merkleTestAnchors = [ + ['0x' + createHash('sha256').update('TestAnchor123').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor124').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor125').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor126').digest('hex')], + ['0x' + createHash('sha256').update('TestAnchor127').digest('hex')] + ] + + +export async function createAttestation(to, anchor, signer, validStartTime= 0) { + const attestationTime = Math.floor(Date.now() / 1000.0); // Now in seconds + const expiryTime = attestationTime + 5 * 60; // 5min valid + + const messageHash = ethers.utils.solidityKeccak256(["address", "bytes32", "uint256", 'uint256', "uint256"], [to, anchor, attestationTime, validStartTime, expiryTime]); + const sig = await signer.signMessage(ethers.utils.arrayify(messageHash)); + + return ethers.utils.defaultAbiCoder.encode(['address', 'bytes32', 'uint256', 'uint256', 'uint256', 'bytes'], [to, anchor, attestationTime, validStartTime, expiryTime, sig]); +} + + +export async function createAttestationWithData(to, anchor, signer, merkleTree, validStartTime= 0) { + + const attestation = await createAttestation(to, anchor, signer, validStartTime); // Now in seconds + + const proof = merkleTree.getProof([anchor]); + const data = ethers.utils.defaultAbiCoder.encode(['bytes32[]'], [proof]) + + return [attestation, data]; +} + + +export const IERC6956InterfaceId = '0xa9cf7635'; +export const IERC6956AttestationLimitedInterfaceId ='0x75a2e933' +export const IERC6956FloatableInterfaceId = '0xf82773f7'; +export const IERC6956ValidAnchorsInterfaceId = '0x051c9bd8';

E#<6^UwZJbgS;v7;(n4GYJC_ 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м?^iy|_ziuq?nb{P4$M+{g}}e-&IOz5JGEbohY- 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