From 3cd06e80e25b968ef03248fbf56f090a726c7dc2 Mon Sep 17 00:00:00 2001 From: "drCathieSo.eth" Date: Tue, 1 Oct 2024 22:04:55 +0800 Subject: [PATCH 1/7] Update ERC-7007: Move to Final Merged by EIP-Bot. --- ERCS/erc-7007.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ERCS/erc-7007.md b/ERCS/erc-7007.md index caac5be17b..ddf6a83c22 100644 --- a/ERCS/erc-7007.md +++ b/ERCS/erc-7007.md @@ -4,8 +4,7 @@ title: Verifiable AI-Generated Content Token description: An ERC-721 extension for verifiable AI-generated content tokens using Zero-Knowledge and Optimistic Machine Learning techniques author: Cathie So (@socathie), Xiaohang Yu (@xhyumiracle), Conway (@0x1cc), Lee Ting Ting (@tina1998612), Kartin discussions-to: https://ethereum-magicians.org/t/eip-7007-zkml-aigc-nfts-an-erc-721-extension-interface-for-zkml-based-aigc-nfts/14216 -status: Last Call -last-call-deadline: 2024-09-30 +status: Final type: Standards Track category: ERC created: 2023-05-10 @@ -233,4 +232,4 @@ In the opML scenario, it is important to consider that the `aigcData` might chan ## Copyright -Copyright and related rights waived via [CC0](../LICENSE.md). \ No newline at end of file +Copyright and related rights waived via [CC0](../LICENSE.md). From b3be3b6f3536dd0c0bf0932de2ea4655c0fcb762 Mon Sep 17 00:00:00 2001 From: Andreas Freund Date: Tue, 1 Oct 2024 07:06:44 -0700 Subject: [PATCH 2/7] Update ERC-6734: Move to Review (#601) * Move ERC 6734 to Status: Review * Updates based on feedbacl Removed mention of EIP-3220 * updated requires section to remove 3220 --- ERCS/erc-6734.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/ERCS/erc-6734.md b/ERCS/erc-6734.md index bacfe8f19e..f22df1b8fe 100644 --- a/ERCS/erc-6734.md +++ b/ERCS/erc-6734.md @@ -4,11 +4,11 @@ title: L2 Token List description: Token List that ensures the correct identification of tokens from different Layer 1, Layer 2, or Sidechains. author: Kelvin Fichter (@smartcontracts), Andreas Freund (@Therecanbeonlyone1969), Pavel Sinelnikov (@psinelnikov) discussions-to: https://ethereum-magicians.org/t/canonical-token-list-standard-from-the-eea-oasis-community-projects-l2-standards-working-group/13091 -status: Draft +status: Review type: Standards Track category: ERC created: 2023-03-20 -requires: 155, 3220 +requires: 155 --- ## Abstract @@ -133,12 +133,7 @@ The chainId property utilized MUST allow for the requirements of the [EIP-155](. Namely, transaction replay protection on the network that is identified by the chainId property value. Note, that for replay protection to be guaranteed, the chainId should be unique. Ensuring a unique chainId is beyond the scope of this document. -[[R4]](#r4) testability: EIP-155 requires that a transaction hash is derived from the keccak256 hash of the following nine RLP encoded elements `(nonce, gasprice, startgas, to, value, data, chainid, 0, 0)` which can be tested easily with existing cryptographic libraries. EIP-155 further requires that the `v` value of the secp256k1 signature must be set to `{0,1} + CHAIN_ID * 2 + 35` where `{0,1}` is the parity of the `y` value of the curve point for which the signature `r`-value is the `x`-value in the secp256k1 signing process. This requirement is testable with available open-source secp256k1 digital signature suites. Therefore, [[R4]](#r4) is testable. - - **[D2]** -The `chainId` property SHOULD follow [EIP-3220](./eip-3220.md) draft standard. - -[[D2]](#d2) testability: The [EIP-3220](./eip-3220.md) draft standard can be tested because the crosschain id is specified as a concatenation of well-defined strings, and using open source tooling can be used to parse and split a crosschain id, the obtained string segments can be compared against expected string lengths, and context dependent, the values for the strings specified in the standard. Consequently, [[D2]](#d2) is testable. +[[R4]](#r4) testability: EIP-155 requires that a transaction hash is derived from the keccak256 hash of the following nine RLP encoded elements `(nonce, gasprice, startgas, to, value, data, chainid, 0, 0)` which can be tested easily with existing cryptographic libraries. EIP-155 further requires that the `v` value of the secp256k1 signature must be set to `{0,1} + CHAIN_ID * 2 + 35` where `{0,1}` is the parity of the `y` value of the curve point for which the signature `r`-value is the `x`-value in the secp256k1 signing process. This requirement is testable with available open-source secp256k1 digital signature suites. Therefore, [[R4]](#r4) is testable. **[O1]** The `humanReadableTokenSymbol` property MAY be used. @@ -491,10 +486,10 @@ This document defines the conformance levels of a canonical token list as follow * **Level 2:** All MUST and SHOULD requirements are fulfilled by a specific implementation as proven by a test report that proves in an easily understandable manner the implementation's conformance with each requirement based on implementation-specific test-fixtures with implementation-specific test-fixture inputs. * **Level 3:** All MUST, SHOULD, and MAY requirements with conditional MUST or SHOULD requirements are fulfilled by a specific implementation as proven by a test report that proves in an easily understandable manner the implementation's conformance with each requirement based on implementation-specific test-fixtures with implementation-specific test-fixture inputs. - **[D3]** + **[D2]** A claim that a canonical token list implementation conforms to this specification SHOULD describe a testing procedure carried out for each requirement to which conformance is claimed, that justifies the claim with respect to that requirement. -[[D3]](#d3) testability: Since each of the non-conformance-target requirements in this documents is testable, so must be the totality of the requirements in this document. Therefore, conformance tests for all requirements can exist, and can be described as required in [[D3]](#d3). +[[D2]](#d2) testability: Since each of the non-conformance-target requirements in this documents is testable, so must be the totality of the requirements in this document. Therefore, conformance tests for all requirements can exist, and can be described as required in [[D2]](#d2). **[R5]** A claim that a canonical token list implementation conforms to this specification at **Level 2** or higher MUST describe the testing procedure carried out for each requirement at **Level 2** or higher, that justifies the claim to that requirement. From 33ff9823e15cb81a0e0880b7d36b7d4fbafa73b9 Mon Sep 17 00:00:00 2001 From: Riley Date: Tue, 1 Oct 2024 10:14:48 -0400 Subject: [PATCH 3/7] Update ERC-6909: Move to Review Merged by EIP-Bot. --- ERCS/erc-6909.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-6909.md b/ERCS/erc-6909.md index ea343004ee..63d566397f 100644 --- a/ERCS/erc-6909.md +++ b/ERCS/erc-6909.md @@ -4,7 +4,7 @@ title: Minimal Multi-Token Interface description: A minimal specification for managing multiple tokens by their id in a single contract. author: JT Riley (@jtriley-eth), Dillon (@d1ll0n), Sara (@snreynolds), Vectorized (@Vectorized), Neodaoist (@neodaoist) discussions-to: https://ethereum-magicians.org/t/eip-6909-multi-token-standard/13891 -status: Draft +status: Review type: Standards Track category: ERC created: 2023-04-19 From a9ea794a79e1852b7b5d847b44b694cd5a99270e Mon Sep 17 00:00:00 2001 From: Daniel Gretzke Date: Fri, 4 Oct 2024 00:22:49 +0200 Subject: [PATCH 4/7] Update ERC-7751: Update custom error and add security considerations Merged by EIP-Bot. --- ERCS/erc-7751.md | 51 +++++++++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 22 deletions(-) diff --git a/ERCS/erc-7751.md b/ERCS/erc-7751.md index ac91a16651..d12ad7670e 100644 --- a/ERCS/erc-7751.md +++ b/ERCS/erc-7751.md @@ -12,7 +12,7 @@ created: 2024-08-06 ## Abstract -This ERC proposes a standard for handling bubbled up reverts in Ethereum smart contracts using custom errors. This standard aims to improve the clarity and usability of revert reasons by allowing additional context to be passed alongside the raw bytes of the bubbled up revert. The custom errors should follow the naming structure `Wrap__` followed by a descriptive name and allow an arbitrary number of parameters, with the first being the address of the called contract and the second being the raw bytes of the bubbled up revert. +This ERC proposes a standard for handling bubbled up reverts in Ethereum smart contracts using a dedicated custom error. This standard aims to improve the clarity and usability of revert reasons by allowing additional context to be passed alongside the raw bytes of the bubbled up revert. The `WrappedError` custom error should wrap reverts from called contracts and provide a consistent interface for parsing and handling reverts in tools like Etherscan or Tenderly. ## Motivation @@ -22,20 +22,22 @@ Currently, when a smart contract calls another and the called contract reverts, 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. -1. **Custom Error Naming Convention:** - - Custom errors that bubble up reverts MUST be prefixed with `Wrap__`. - - Example: `Wrap__ERC20TransferFailed`. -2. **Parameters:** - - The first parameter MUST be the address of the called contract that reverted. - - The second parameter MUST be the raw bytes of the bubbled up revert. - - Additional parameters MAY be included to provide context. - - Example: `Wrap__ERC20TransferFailed(address token, bytes reason, address recipient)`. +In order to wrap a revert, a contract MUST revert with the following error that corresponds to the following signature `0x90bfb865`: -If no additional parameters are defined and a generic call reverts, the custom error `Wrap__SubcontextReverted(address, bytes)` SHOULD be thrown to ensure a consistent signature. +```solidity +error WrappedError(address target, bytes4 selector, bytes reason, bytes details); +``` + +Where: + +- `target` is the address of the called contract that reverted. +- `selector` is the selector of the called function that reverted. If the call was an ETH transfer without any data, the selector MUST be `bytes4(0)` +- `reason` is the raw bytes of the revert reason. +- `details` is optional additional context about the revert. In cases where no additional context is needed, the `details` bytes can be empty. In cases with additional context, the `details` bytes MUST be an ABI encoded custom error declared on the contract that emits the `WrappedError` error. ## Rationale -By including the called contract, raw revert bytes and additional context, developers can provide more detailed information about the failure. Additionally, by standardizing the way reverts are bubbled up, it also enables nested bubbled up reverts where multiple reverts thrown by different contracts can be followed recursively. The reverts can also be parsed and handled by tools like Etherscan and Foundry to further enhance the readability and debuggability of smart contract interactions, as well as facilitating better error handling practices in general. +By including the called contract and function, raw revert bytes and additional context, developers can provide more detailed information about the failure. Additionally, by standardizing the way reverts are bubbled up, it also enables nested bubbled up reverts where multiple reverts thrown by different contracts can be followed recursively. The reverts can also be parsed and handled by tools like Etherscan and Foundry to further enhance the readability and debuggability of smart contract interactions, as well as facilitating better error handling practices in general. ## Backwards Compatibility @@ -64,7 +66,9 @@ contract Token { contract Vault { Token token; - error Wrap__ERC20TransferFailed(address token, bytes reason, address recipient); + error WrappedError(address target, bytes4 selector, bytes reason, bytes details); + error ERC20TransferFailed(address recipient); + constructor(Token token_) { token = token_; @@ -73,7 +77,7 @@ contract Vault { function withdraw(address to, uint256 amount) external { // logic try token.transfer(to, amount) {} catch (bytes memory error) { - revert Wrap__ERC20TransferFailed(address(token), error, to); + revert WrappedError(address(token), token.transfer.selector, error, abi.encodeWithSelector(ERC20TransferFailed.selector, to)); } } } @@ -81,7 +85,7 @@ contract Vault { contract Router { Vault vault; - error Wrap__SubcontextReverted(address target, bytes reason); + error WrappedError(address target, bytes4 selector, bytes reason, bytes details); constructor(Vault vault_) { vault = vault_; @@ -90,7 +94,7 @@ contract Router { function withdraw(uint256 amount) external { // logic try vault.withdraw(msg.sender, amount) {} catch (bytes memory error) { - revert Wrap__SubcontextReverted(address(vault), error); + revert WrappedError(address(vault), vault.withdraw.selector, error, ""); } } } @@ -103,12 +107,13 @@ contract Test { try router.withdraw(amount) {} catch (bytes memory thrownError) { bytes memory expectedError = abi.encodeWithSelector( - Router.Wrap__SubcontextReverted.selector, address(vault), abi.encodeWithSelector( - Vault.Wrap__ERC20TransferFailed.selector, + Router.WrappedError.selector, address(vault), vault.withdraw.selector, abi.encodeWithSelector( + Vault.WrappedError.selector, address(token), + token.transfer.selector, abi.encodeWithSignature("Error(string)", "insufficient balance"), - address(this) - ) + abi.encodeWithSelector(Vault.ERC20TransferFailed.selector, address(this)) + ), "" ); assert(keccak256(thrownError) == keccak256(expectedError)); } @@ -122,13 +127,15 @@ When catching a revert from a called contract, the calling contract should rever ```solidity contract Foo { - error Wrap__SubcontextReverted(address target, bytes reason); + + error WrappedError(address target, bytes4 selector, bytes reason, bytes details); + error MyCustomError(uint256 x); function foo(address to, bytes memory data) external { // logic (bool success, bytes memory returnData) = to.call(data); if (!success) { - revert Wrap__SubcontextReverted(to, returnData); + revert WrappedError(to, bytes4(data), returnData, abi.encodeWithSelector(MyCustomError.selector, 42)); } } } @@ -136,7 +143,7 @@ contract Foo { ## Security Considerations -This EIP does not introduce new security risks. +Smart contracts could either drop or purposefully suppress the bubbled up reverts along the revert chain. Additionally, smart contracts may also lie or incorrectly report the wrapped reverts, so the information is not guaranteed to be accurate. ## Copyright From 610506a71c36bed49dde9339d5c77e884df4ddbc Mon Sep 17 00:00:00 2001 From: filmakarov Date: Fri, 4 Oct 2024 18:09:00 +0300 Subject: [PATCH 5/7] Update ERC-7579: executeUserOp + multitype module onInstall/onUninstall Merged by EIP-Bot. --- ERCS/erc-7579.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/ERCS/erc-7579.md b/ERCS/erc-7579.md index 2f3542e23c..8730fe2276 100644 --- a/ERCS/erc-7579.md +++ b/ERCS/erc-7579.md @@ -91,6 +91,13 @@ The account MAY also implement the following function in accordance with ERC-433 function executeUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash) external; ``` +If an account chooses to implement `executeUserOp`, this method SHOULD ensure the account executes `userOp.calldata` except 4 most significant bytes, which are reserved for `executeUserOp.selector` as per ERC-4337. Thus the `userOp.callData[4:]` should represent the calldata for a valid call to the account. It is RECOMMENDED that the account executes a `delegatecall` in order to preserve the original `msg.sender` to the account. + +Example: +``` +(bool success, bytes memory innerCallRet) = address(this).delegatecall(userOp.callData[4:]); +``` + The execution mode is a `bytes32` value that is structured as follows: - callType (1 byte): `0x00` for a single `call`, `0x01` for a batch `call`, `0xfe` for `staticcall` and `0xff` for `delegatecall` @@ -223,6 +230,9 @@ If the smart account has a fallback handler installed, it: - MUST route to fallback handlers based on the function selector of the calldata - MAY implement authorization control, which SHOULD be done via hooks +If the account adds features via fallback, these should be considered the same as if the account was implementing those features natively. +ERC-165 support (see below) is one example of such an approach. Note, that it is only RECOMMENDED to implement view functions via fallback where this can lead to greater extensibility. It is NOT RECOMMENDED to implement core account logic via a fallback. + #### ERC-165 Smart accounts MUST implement ERC-165. However, for every interface function that reverts instead of implementing the functionality, the smart account MUST return `false` for the corresponding interface id. @@ -268,6 +278,17 @@ interface IModule { } ``` +Note: A single module that is of multiple types MAY decide to pass `moduleTypeId` inside `data` to `onInstall` and/or `onUninstall` methods, so those methods are able to properly handle installation/uninstallation for various types. +Example: +```solidity +// Module.sol +function onInstall(bytes calldata data) external { + // ... + (uint256 moduleTypeId, bytes memory otherData) = abi.decode(data, (uint256, bytes)); + // ... +} +``` + #### Validators Validators MUST implement the `IModule` and the `IValidator` interface and have module type id: `1`. From 1526cbae597a40a9192f14c35c907811b91a5bf1 Mon Sep 17 00:00:00 2001 From: Vidor <1101164+V1d0r@users.noreply.github.com> Date: Tue, 8 Oct 2024 09:32:53 +0100 Subject: [PATCH 6/7] Update ERC-7578: Update getter and setter methods naming Merged by EIP-Bot. --- ERCS/erc-7578.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/ERCS/erc-7578.md b/ERCS/erc-7578.md index 9acb4fbb37..b4a237483f 100644 --- a/ERCS/erc-7578.md +++ b/ERCS/erc-7578.md @@ -104,7 +104,7 @@ interface IERC7578 { * @dev Does NOT revert if token doesn't exist * @param tokenId The token ID of the minted token */ - function getProperties(uint256 tokenId) external view returns (Properties memory properties); + function getPropertiesOf(uint256 tokenId) external view returns (Properties memory properties); } ``` @@ -112,7 +112,7 @@ When `properties` are set, the `PropertiesSet(uint256 indexed tokenId, Propertie When `properties` are removed, the `PropertiesRemoved(uint256 indexed tokenId)` event is emitted. -The `getProperties(uint256 tokenId)` function MUST return the unique `properties` of a token. If the ERC-721 token is burned or has no properties set, it SHOULD return an empty `Properties` struct. +The `getPropertiesOf(uint256 tokenId)` function MUST return the unique `properties` of a token. If the ERC-721 token is burned or has no properties set, it SHOULD return an empty `Properties` struct. ## Rationale @@ -158,7 +158,7 @@ contract ERC7578 is ERC721, IERC7578 { /** * @inheritdoc IERC7578 */ - function getProperties(uint256 tokenId) public view override returns (Properties memory properties) { + function getPropertiesOf(uint256 tokenId) public view override returns (Properties memory properties) { properties = _properties[tokenId]; } @@ -172,7 +172,7 @@ contract ERC7578 is ERC721, IERC7578 { * * Emits a {PropertiesSet} event */ - function _setProperties(uint256 tokenId, Properties calldata properties) internal { + function _setPropertiesOf(uint256 tokenId, Properties calldata properties) internal { _properties[tokenId] = Properties({ tokenIssuer: properties.tokenIssuer, assetHolder: properties.assetHolder, @@ -194,7 +194,7 @@ contract ERC7578 is ERC721, IERC7578 { * * Emits a {PropertiesRemoved} event */ - function _removeProperties(uint256 tokenId) internal { + function _removePropertiesOf(uint256 tokenId) internal { delete _properties[tokenId]; emit PropertiesRemoved(tokenId); } @@ -207,7 +207,7 @@ contract ERC7578 is ERC721, IERC7578 { function _update(address to, uint256 tokenId, address auth) internal virtual override returns (address) { address from = _ownerOf(tokenId); if (to == address(0)) { - _removeProperties(tokenId); + _removePropertiesOf(tokenId); } else if (from == address(0)) { if (bytes(_properties[tokenId].tokenIssuer).length == 0) revert PropertiesUninitialized(); } @@ -219,7 +219,7 @@ contract ERC7578 is ERC721, IERC7578 { ## Security Considerations -To ensure the authenticity of a token's properties, the `_setProperties()` method should only be called inside a method that is restricted to a trusted Externally Owned Account (EOA) or contract. This trusted entity must verify that the properties accurately reflect the real physical attributes of the token. +To ensure the authenticity of a token's properties, the `_setPropertiesOf()` method should only be called inside a method that is restricted to a trusted Externally Owned Account (EOA) or contract. This trusted entity must verify that the properties accurately reflect the real physical attributes of the token. ## Copyright From 3173a488e7d4da604ae137d38ab3bbfd9ee4064a Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Fri, 11 Oct 2024 22:50:40 +0530 Subject: [PATCH 7/7] Make ERC-7700 Image Optimsations Merged by EIP-Bot. --- assets/erc-7700/fonts/Licenses/Rajdhani.txt | 93 + assets/erc-7700/fonts/Rajdhani.woff2 | 2365 +++++++++++++++++++ assets/erc-7700/images/Database.svg | 291 ++- assets/erc-7700/images/Keygen.svg | 710 +++--- assets/erc-7700/images/L1.svg | 288 +-- assets/erc-7700/images/L2.svg | 188 +- assets/erc-7700/images/Schema.svg | 1736 +++++++------- 7 files changed, 4093 insertions(+), 1578 deletions(-) create mode 100644 assets/erc-7700/fonts/Licenses/Rajdhani.txt create mode 100644 assets/erc-7700/fonts/Rajdhani.woff2 diff --git a/assets/erc-7700/fonts/Licenses/Rajdhani.txt b/assets/erc-7700/fonts/Licenses/Rajdhani.txt new file mode 100644 index 0000000000..fa88d37258 --- /dev/null +++ b/assets/erc-7700/fonts/Licenses/Rajdhani.txt @@ -0,0 +1,93 @@ +Copyright (c) 2009, Indian Type Foundry + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. \ No newline at end of file diff --git a/assets/erc-7700/fonts/Rajdhani.woff2 b/assets/erc-7700/fonts/Rajdhani.woff2 new file mode 100644 index 0000000000..5545c74460 --- /dev/null +++ b/assets/erc-7700/fonts/Rajdhani.woff2 @@ -0,0 +1,2365 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ERCs/assets/erc-7694/fonts/Rajdhani.woff2 at solanaHandler · namesys-eth/ERCs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + +
+ Skip to content + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + +
+ +
+ + + + + + + + +
+ + + + + +
+ + + + + + + + + + + +
+
+
+ + + + + + + + + + + + + + + + + + +
+ Open in github.dev + Open in a new github.dev tab + Open in codespace + + + + + + + + + + + + + + + + + + +

Latest commit

 

History

History
99.4 KB

Rajdhani.woff2

File metadata and controls

99.4 KB
+
+ + + + +
+ +
+ +
+
+ +
+ +
+

Footer

+ + + + +
+
+ + + + + © 2024 GitHub, Inc. + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + +
+ +
+
+ + + diff --git a/assets/erc-7700/images/Database.svg b/assets/erc-7700/images/Database.svg index 0da7511326..ee11cff923 100644 --- a/assets/erc-7700/images/Database.svg +++ b/assets/erc-7700/images/Database.svg @@ -8,14 +8,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="538.99292mm" - height="246.26625mm" - viewBox="0 0 538.99292 246.26626" + width="539.02795mm" + height="246.15076mm" + viewBox="0 0 539.02795 246.15077" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" sodipodi:docname="Database.svg" - inkscape:export-filename="/Users/sshmatrix/Idee/sshmatrix/Buidl/namesys-eth/namesys-ccip-write/images/keygen.png" + inkscape:export-filename="Database.png" inkscape:export-xdpi="200" inkscape:export-ydpi="200"> + @@ -206,132 +216,105 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-33.411763,-64.921999)"> - - HTTP POST [ + + HTTP POST [signer] [signature] [approval] - [[callData] - - - setValue(calldata) - - - - L1 - - - - DB - + + L1 + + DB CONTRACT 1 + x="452.81824" + y="91.454376" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.325693;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CONTRACT 1 revert StorageRoutedToDatabase(gatewayURL) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.257131;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">revert StorageRoutedToDatabase[gatewayURL] response + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.257131;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">response - - - + CLIENT - + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;">CLIENT DATABASE + x="530.03149" + y="91.454376" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.325693;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">DATABASE + + setValue[calldata] + diff --git a/assets/erc-7700/images/Keygen.svg b/assets/erc-7700/images/Keygen.svg index 232ab77238..ae3da761be 100644 --- a/assets/erc-7700/images/Keygen.svg +++ b/assets/erc-7700/images/Keygen.svg @@ -8,14 +8,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="354.92731mm" - height="284.96518mm" - viewBox="0 0 354.92731 284.96518" + width="355.14566mm" + height="284.86801mm" + viewBox="0 0 355.14566 284.86801" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" sodipodi:docname="Keygen.svg" - inkscape:export-filename="/Users/sshmatrix/Idee/sshmatrix/Buidl/namesys-eth/namesys-ccip-write/images/keygen.png" + inkscape:export-filename="Keygen.png" inkscape:export-xdpi="200" inkscape:export-ydpi="200"> + @@ -200,7 +210,14 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-26.391586,-23.472401)"> + transform="translate(-26.319521,-23.400335)"> + keypairdecode + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:start;text-anchor:start;stroke:#ff4f00;stroke-width:0.502;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="301.8284" + y="147.56477" + id="tspan1159">KEYPAIR CAIP-10 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.624383;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="-175.52129" + y="108.35208" + id="tspan2163-0-2-6-4-3-7">CAIP-10 pubkey PUBKEY[address] + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:start;text-anchor:start;stroke:#ff5500;stroke-width:0.429033;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="-165.38974" + y="99.295135" + id="tspan2447">[ADDRESS] MESSAGE signature + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.438444;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="191.58209" + y="254.40422" + id="tspan2163-0-2-6-4-3-2">SIGNATURE salt + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.345378;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="241.88663" + y="227.65532" + id="tspan2163-0-2-6-4-3-2-2">SALT wallet WALLETkeypair + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:start;text-anchor:start;fill:#0079ff;fill-opacity:1;stroke:#0079ff;stroke-width:0.433269;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="71.353035" + y="104.03593" + id="tspan1102">KEYPAIR inputINPUT key + style="font-size:4.95802px;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.337097;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="tspan3283"> KEY hashkey + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.359125;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="282.19537" + y="154.02812" + id="tspan2163-0-2-6-4-3-2-2-0">HASHKEY - - - - USERNAME - - + + USERNAME - - - - password - - + + PASSWORD @@ -716,58 +705,52 @@ id="path1062-2-9-3-6" sodipodi:nodetypes="cccc" /> signerSIGNERkeys - - - CAIP-02 - + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ff4f00;fill-opacity:1;stroke:#ff4f00;stroke-width:0.516629;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="366.21487" + y="134.32416" + id="tspan1153">KEYS + + CAIP-02 otherOTHERkeys + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.516629;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="366.21487" + y="175.10515" + id="tspan1149">KEYS @@ -918,22 +901,22 @@ transform="matrix(0.27231888,0,0,0.27231888,213.85157,218.02482)" /> hkdf + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.594683;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="351.99957" + y="270.04156" + id="tspan2163-0-2-6-4-3-6-1">HKDF @@ -967,46 +950,30 @@ style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-opacity:1" /> - - sha-SHA-256 - 256 - sign + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.594683;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="350.82336" + y="285.1387" + id="tspan2163-0-2-6-4-3-6-1-7">SIGN @@ -1015,28 +982,28 @@ + transform="matrix(0.07723047,0,0,0.07723047,316.7695,193.49336)" + style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-width:4.39179;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"> + style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-width:18.1111;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"> + style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-width:18.1111;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-width:18.1111;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> + style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-width:8.79949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"> + style="fill:#8c8c8c;fill-opacity:1;stroke:#ffffff;stroke-width:8.79949;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - - - - PROTOCOL - - + + PROTOCOL - - PBKDfPBKDF2 - 2 - @@ -1191,29 +1130,25 @@ style="fill:#ff4f00;fill-opacity:1;stroke:#ff4f00;stroke-width:18.1111;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> - - - spice - + + SPICE - - - - pepper - - + + PEPPER + DECODE diff --git a/assets/erc-7700/images/L1.svg b/assets/erc-7700/images/L1.svg index 5b96abeecd..8899f9aa57 100644 --- a/assets/erc-7700/images/L1.svg +++ b/assets/erc-7700/images/L1.svg @@ -8,14 +8,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="538.99292mm" - height="246.12524mm" - viewBox="0 0 538.99292 246.12525" + width="538.9527mm" + height="246.08514mm" + viewBox="0 0 538.9527 246.08515" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" sodipodi:docname="L1.svg" - inkscape:export-filename="/Users/sshmatrix/Idee/sshmatrix/Buidl/namesys-eth/namesys-ccip-write/images/keygen.png" + inkscape:export-filename="L1.png" inkscape:export-xdpi="200" inkscape:export-ydpi="200"> + @@ -206,58 +216,72 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-33.411763,-65.062998)"> + transform="translate(-33.582213,-65.062996)"> + + + + + + Execute on Mainnet [Execute on Mainnet [contract] [callData] setValue(calldata) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.26869px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.309;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">setValue(calldata) - - @@ -268,74 +292,65 @@ sodipodi:nodetypes="ccccccccccc" /> L1 - - - - L1 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">L1 + + style="font-size:12.8702px;line-height:1.25;font-family:Palatino;-inkscape-font-specification:Palatino;font-variant-ligatures:none;text-align:center;letter-spacing:0.264583px;text-anchor:middle;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.771;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="513.16644" + y="112.60666" + id="text1098-9-0" + transform="scale(1.0134682,0.98671079)">L1 CONTRACT 1 + x="452.81824" + y="91.454376" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.325693;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CONTRACT 1 CONTRACT 2 + x="527.39014" + y="91.454376" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.325693;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CONTRACT 2 @@ -345,189 +360,190 @@ id="path1225-8" sodipodi:nodetypes="cc" /> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> - - revert revert StorageRoutedToL1(contract) - + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> response + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.257131;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">response CLIENT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CLIENT + diff --git a/assets/erc-7700/images/L2.svg b/assets/erc-7700/images/L2.svg index 992e67b6a6..bc2e12bc71 100644 --- a/assets/erc-7700/images/L2.svg +++ b/assets/erc-7700/images/L2.svg @@ -8,14 +8,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="538.99292mm" - height="246.12524mm" - viewBox="0 0 538.99292 246.12525" + width="538.23016mm" + height="245.64159mm" + viewBox="0 0 538.23016 245.64159" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" sodipodi:docname="L2.svg" - inkscape:export-filename="/Users/sshmatrix/Idee/sshmatrix/Buidl/namesys-eth/namesys-ccip-write/images/keygen.png" + inkscape:export-filename="L2.png" inkscape:export-xdpi="200" inkscape:export-ydpi="200"> + @@ -206,52 +216,57 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-33.411763,-65.062998)"> + transform="translate(-33.411762,-65.062996)"> + Execute on L2 [Execute on L2 [contract] [callData] setValue(calldata) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.26869px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.309;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">setValue[calldata] @@ -269,7 +284,7 @@ sodipodi:nodetypes="ccccccccccc" /> L1 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;">L1 + style="fill:none;stroke:#ff5300;stroke-opacity:1"> L2 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;">L2 CONTRACT 1 + x="452.81824" + y="91.454376" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.325693;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CONTRACT 1 CONTRACT 2 + x="527.39014" + y="91.454376" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.325693;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CONTRACT 2 @@ -346,169 +361,168 @@ id="path1225-8" sodipodi:nodetypes="cc" /> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> revert StorageRoutedToL2(chainId, contract) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.257131;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">revert StorageRoutedToL2[chainId, contract] + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1"> + style="fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1"> + style="fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-opacity:1" /> response + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.257131;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">response @@ -519,7 +533,7 @@ sodipodi:nodetypes="ccccccc" /> CLIENT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;">CLIENT diff --git a/assets/erc-7700/images/Schema.svg b/assets/erc-7700/images/Schema.svg index e78b204601..5e54cf63a4 100644 --- a/assets/erc-7700/images/Schema.svg +++ b/assets/erc-7700/images/Schema.svg @@ -8,14 +8,14 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="420.71497mm" - height="251.75276mm" - viewBox="0 0 420.71498 251.75276" + width="420.40274mm" + height="251.61508mm" + viewBox="0 0 420.40275 251.61508" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" sodipodi:docname="Schema.svg" - inkscape:export-filename="/Users/sshmatrix/Idee/sshmatrix/Buidl/namesys-eth/namesys-ccip-write/images/schematic.png" + inkscape:export-filename="Schema.png" inkscape:export-xdpi="200" inkscape:export-ydpi="200"> + @@ -258,21 +265,33 @@ id="layer1" transform="translate(-7.6321621,-18.227982)"> + + - ns1 - ns2 - ns3 - @@ -459,20 +432,6 @@ id="g1654-5" transform="matrix(0,-1,-1,0,416.6934,364.09144)" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - OffchainLookup(sender urls[] calldata callback() extradata ) - callback() - + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;stroke-width:0.264583" /> - extradata - - - - - - - - - Read - return - gateway - result - - - EIP-3668 - EIP-7700 - L2 - database - IPNS - ar - SOLANA - IPFS - IPNS - storage - ns1 - ns2 - ns3 + style="fill:#ffffff;fill-opacity:0.141129;stroke:#ffffff;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"> - L2 - IPFS - DATABASE - ARWEAVE - SOLANA - - - - + + - STORE - gateway - json-rpc - http - ipfs2 - ar-io - arns - arns @@ -1481,13 +818,795 @@ + + + + EIP-7694 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OffchainLookup[sender urls[] calldata callback() extradata ] + callback[] + + extradata + + + + + + + + + READ + RETURN + GATEWAY + result + + + EIP-3668 + + L2 + DATABASE + SOLANA + STORAGE + NS1 + NS2 + NS3 + NS1 + NS2 + NS3 + IPNS + AR + IPFS + IPNS + ARNS + JSON-RPC + HTTP + API + JSON-RPC + IPFS2 + AR-IO + + + + + EIP-7694 + L 2 + DATABASE + SOLANA + STORE + GATEWAY + METADATA + IPFS + ARWEAVE + transform="translate(-12.561236,-26.217714)"> + transform="matrix(0.41454246,0,0,0.45705146,254.00403,204.65357)" + style="opacity:0.495177;fill:#ffffff;fill-opacity:1;stroke-width:0.999361;stroke-miterlimit:4;stroke-dasharray:none"> requires CID/keygen + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.01859px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.334075;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="418.63412" + y="266.1683" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8-2">REQUIRES KEYGEN + style="opacity:0.495177;fill:#ffffff;fill-opacity:1;stroke-width:0.339802" /> requires signature + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.89777px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.324031;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="374.89169" + y="257.35449" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8-2-2">REQUIRES SIGNATURE requires REQUIRES $ payment + dy="0.3754442">$ PAYMENT API - metadata - - - + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.50059px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.46084;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="220.93579" + y="159.33699" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-4-7-0-1-9">ARNS