From 73138f9bd068dd6f55110ec7ac2486890c1f0e24 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 18 Apr 2024 18:17:10 +0530 Subject: [PATCH 01/30] SolanaHandler: INIT --- ERCS/erc-____.md | 92 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 ERCS/erc-____.md diff --git a/ERCS/erc-____.md b/ERCS/erc-____.md new file mode 100644 index 0000000000..c7639ed91c --- /dev/null +++ b/ERCS/erc-____.md @@ -0,0 +1,92 @@ +--- +eip: ____ +title: Solana storage handler for CCIP-Write +description: Cross-chain write deferral protocol incorporating storage handler for Solana +author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) +discussions-to: https://ethereum-magicians.org/t/_/_ +status: Draft +type: Standards Track +category: ERC +created: 2024-04-18 +--- + +## Abstract +The following standard is an extension to the cross-chain write deferral protocol introducing storage handler for Solana. + +## Motivation +[EIP-5559](./eip-5559) introduces two external handlers for deferring write operations to L2s and databases. This document extends that specification by introducing a third storage handler targeting Solana as the storage provider. + +L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat write deferrals made to the Solana handler. + +Solana is a cheap L1 solution that is fairly popular among Ethereum community and is widely supported alongside Ethereum by almost all wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will surely encourage more cross-chain functionalities between Ethereum and Solana at core. + +## Specification +A Solana storage handler `StorageHandledBySolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling write operations on behalf of `msg.sender`. Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values are hex-encoded according to EIP-2308 for usage on Ethereum. These hex-encoded values must be decoded to `base58` for usage on Solana. + +```solidity +// Revert handling Solana storage handler +error StorageHandledBySolana( + bytes32 programId, + bytes32 account, + bytes32 sender +); + +// Generic function in a contract +function setValue( + bytes32 node, + bytes32 key, + bytes32 value +) external { + // Get metadata from on-chain sources + ( + bytes32 programId, // Program (= contract) address on Solana; hex-encoded + bytes32 account // Manager account on Solana; hex-encoded + ) = getMetadata(node); // Arbitrary code + // programId = 0x37868885bbaf236c5d2e7a38952f709e796a1c99d6c9d142a1a41755d7660de3 + // account = 0xe853e0dcc1e57656bd760325679ea960d958a0a704274a5a12330208ba0f428f + // Parse sender as bytes32 type + bytes32 sender = bytes32(uint256(msg.sender)) + // Defer write call to L2 handler + revert StorageHandledBySolana( + programId, + account, + sender + ); +}; +``` + +Clients implementing the Solana handler must call the Solana `programId` using a Solana wallet that is connected to `account` using the precise calldata that it originally received. + +```js +/* Pseudo-code to write to Solana program (= contract) */ +// Instantiate program interface on Solana +const program = new program(programId, rpcProvider); +// Connect to Solana wallet +const wallet = useWallet(); +// Cast sender to base58 +const sender = base58(sender); +// Call the Solana program using connected wallet with initial calldata +// [!] Only approved manager in the Solana program should call +if (wallet.publicKey === account === program.isManagerFor(account, sender)) { + await program(wallet).setValue(node, key, value); +} +``` + +In the above example, `programId`, `account` and `msg.sender` are `base58` encoded. Solana handler requires a one-time transaction on Solana during initial setup for each user to set the local manager. This call in form of pseudo-code is simply + +```js +/* Initial one-time setup */ +// Cast sender to base58 +const sender = base58(sender); +// Set manager on-chain +await program(wallet).setManagerFor(account, sender) +``` + +## Backwards Compatibility +None. + +## Security Considerations +None. + +## Copyright +Copyright and related rights waived via [`CC0`](../LICENSE.md). From 728186fe0e3c8a659b676b115ae3e880d77c5148 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 18 Apr 2024 19:39:15 +0530 Subject: [PATCH 02/30] SolanaHandler: add explanation for account manager --- ERCS/erc-____.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ERCS/erc-____.md b/ERCS/erc-____.md index c7639ed91c..af86a4ac6b 100644 --- a/ERCS/erc-____.md +++ b/ERCS/erc-____.md @@ -7,7 +7,7 @@ discussions-to: https://ethereum-magicians.org/t/_/_ status: Draft type: Standards Track category: ERC -created: 2024-04-18 +created: 2024-04-1 --- ## Abstract @@ -82,6 +82,14 @@ const sender = base58(sender); await program(wallet).setManagerFor(account, sender) ``` +## Rationale +`StorageHandledBySolana()` works in a similar fashion to `StorageHandledByL2()` from [EIP-5559](/.eip-5559) in the sense that the client needs to be pointed to a certain contract on another chain. Since this re-routing occurs across Ethereum-Solana barrier, the clients must account for two things: + +- that `msg.sender` is not preserved during EVM to SVM jump, and +- that similar to `StorageHandledByL2()`, the manager `account` must exist on SVM to establish write authorisation. + +The first issue is fixed by including `msg.sender` in the revert itself, while the second issue is trivially fixed by sending an initial transaction to the Solana program during setup. + ## Backwards Compatibility None. From 70aa6f28771cb6844f8640971f98c4cf83643bcf Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 18 Apr 2024 21:17:25 +0530 Subject: [PATCH 03/30] SolanaHandler: include datatype casting --- ERCS/erc-____.md | 62 ++++++++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 26 deletions(-) diff --git a/ERCS/erc-____.md b/ERCS/erc-____.md index af86a4ac6b..a7ccd3f198 100644 --- a/ERCS/erc-____.md +++ b/ERCS/erc-____.md @@ -3,7 +3,7 @@ eip: ____ title: Solana storage handler for CCIP-Write description: Cross-chain write deferral protocol incorporating storage handler for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) -discussions-to: https://ethereum-magicians.org/t/_/_ +discussions-to: https://ethereum-magicians.org/t/extension-to-eip-5559-solana-storage-handler-for-ccip-write/19706 status: Draft type: Standards Track category: ERC @@ -21,14 +21,13 @@ L2s and databases both have centralising catalysts in their stack. For L2s, this Solana is a cheap L1 solution that is fairly popular among Ethereum community and is widely supported alongside Ethereum by almost all wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will surely encourage more cross-chain functionalities between Ethereum and Solana at core. ## Specification -A Solana storage handler `StorageHandledBySolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling write operations on behalf of `msg.sender`. Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values are hex-encoded according to EIP-2308 for usage on Ethereum. These hex-encoded values must be decoded to `base58` for usage on Solana. +A Solana storage handler `StorageHandledBySolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling write operations on behalf of `msg.sender`. ```solidity // Revert handling Solana storage handler error StorageHandledBySolana( bytes32 programId, - bytes32 account, - bytes32 sender + bytes32 account ); // Generic function in a contract @@ -44,51 +43,62 @@ function setValue( ) = getMetadata(node); // Arbitrary code // programId = 0x37868885bbaf236c5d2e7a38952f709e796a1c99d6c9d142a1a41755d7660de3 // account = 0xe853e0dcc1e57656bd760325679ea960d958a0a704274a5a12330208ba0f428f - // Parse sender as bytes32 type - bytes32 sender = bytes32(uint256(msg.sender)) - // Defer write call to L2 handler + // Defer write call to Solana handler revert StorageHandledBySolana( programId, - account, - sender + account ); }; ``` -Clients implementing the Solana handler must call the Solana `programId` using a Solana wallet that is connected to `account` using the precise calldata that it originally received. +Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana handler must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate datatype) calldata that it originally received. ```js /* Pseudo-code to write to Solana program (= contract) */ +// Decode all 'bytes32' types in EVM to 'PubKey' type in SVM +const [programId, account, node, key, value] = svmPubkey([programId, account, node, key, value]) // Instantiate program interface on Solana const program = new program(programId, rpcProvider); // Connect to Solana wallet const wallet = useWallet(); -// Cast sender to base58 -const sender = base58(sender); // Call the Solana program using connected wallet with initial calldata // [!] Only approved manager in the Solana program should call -if (wallet.publicKey === account === program.isManagerFor(account, sender)) { +if (wallet.publicKey === account) { await program(wallet).setValue(node, key, value); } ``` -In the above example, `programId`, `account` and `msg.sender` are `base58` encoded. Solana handler requires a one-time transaction on Solana during initial setup for each user to set the local manager. This call in form of pseudo-code is simply - -```js -/* Initial one-time setup */ -// Cast sender to base58 -const sender = base58(sender); -// Set manager on-chain -await program(wallet).setManagerFor(account, sender) +In the above example, EVM-specific `bytes32`-type variables `programId`, `account`, `node`, `key` and `value` must all be converted to SVM-specific `PubKey` type. The equivalent `setValue()` function in the Solana program is of the form + +```rust +// Example function in Solana program +pub fn setValue( + ctx: Context, + node: PubKey, + key: PubKey, + value: PubKey +) -> ProgramResult { + // Code to verify PROGRAM_ID and rent exemption status + ... + // Code for de-serialising, updating and re-serialising the data + ... + // Write serialised data to account + // [!] Stored data must be mapped by node & account + ... +} ``` -## Rationale -`StorageHandledBySolana()` works in a similar fashion to `StorageHandledByL2()` from [EIP-5559](/.eip-5559) in the sense that the client needs to be pointed to a certain contract on another chain. Since this re-routing occurs across Ethereum-Solana barrier, the clients must account for two things: +Since EVM and SVM have differing architectures, it is important to define precise datatype castings from EVM to SVM. Some pre-existing custom but popular datatypes in SVM that equate to common EVM datatypes are: -- that `msg.sender` is not preserved during EVM to SVM jump, and -- that similar to `StorageHandledByL2()`, the manager `account` must exist on SVM to establish write authorisation. +| EVM | SVM | +|:---------------:|:------------:| +| `bytes32` | `PubKey` | +| `string` | `String` | -The first issue is fixed by including `msg.sender` in the revert itself, while the second issue is trivially fixed by sending an initial transaction to the Solana program during setup. +For other encoding-specific datatypes such as `bytesN` (`N < 32`) and `address` (`N = 20`), this specification requires that all such variables must be padded up to `bytes32`. Using this strategy, most current use-cases of `StorageHandledBySolana()` are accounted for. + +## Rationale +`StorageHandledBySolana()` works in a similar fashion to `StorageHandledByL2()` in [EIP-5559](/.eip-5559) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM datatypes. ## Backwards Compatibility None. From b465a2f137471023402f2de450dc16de051dc5f4 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 18 Apr 2024 21:21:17 +0530 Subject: [PATCH 04/30] SolanaHandler: add EIP number 7694 --- ERCS/{erc-____.md => erc-7694.md} | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) rename ERCS/{erc-____.md => erc-7694.md} (95%) diff --git a/ERCS/erc-____.md b/ERCS/erc-7694.md similarity index 95% rename from ERCS/erc-____.md rename to ERCS/erc-7694.md index a7ccd3f198..bbd86fe75e 100644 --- a/ERCS/erc-____.md +++ b/ERCS/erc-7694.md @@ -1,9 +1,9 @@ --- -eip: ____ +eip: 7694 title: Solana storage handler for CCIP-Write description: Cross-chain write deferral protocol incorporating storage handler for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) -discussions-to: https://ethereum-magicians.org/t/extension-to-eip-5559-solana-storage-handler-for-ccip-write/19706 +discussions-to: https://ethereum-magicians.org/t/eip-7694-solana-storage-handler-for-ccip-write/19706 status: Draft type: Standards Track category: ERC @@ -18,7 +18,7 @@ The following standard is an extension to the cross-chain write deferral protoco L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat write deferrals made to the Solana handler. -Solana is a cheap L1 solution that is fairly popular among Ethereum community and is widely supported alongside Ethereum by almost all wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will surely encourage more cross-chain functionalities between Ethereum and Solana at core. +Solana is a cheap L1 solution that is fairly popular among Ethereum community and is widely supported alongside Ethereum by almost all wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. ## Specification A Solana storage handler `StorageHandledBySolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling write operations on behalf of `msg.sender`. From 4e3a8f794e9d23dcf1b135ff78f6957229ed9ebe Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 18 Apr 2024 21:22:10 +0530 Subject: [PATCH 05/30] ERC-7694: Fix date --- ERCS/erc-7694.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index bbd86fe75e..6c6966cf01 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -7,7 +7,7 @@ discussions-to: https://ethereum-magicians.org/t/eip-7694-solana-storage-handler status: Draft type: Standards Track category: ERC -created: 2024-04-1 +created: 2024-04-18 --- ## Abstract From 5688039729316f6959227351bac9bc65d976b37c Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 18 Apr 2024 21:28:49 +0530 Subject: [PATCH 06/30] ERC-7694: Fix typo in EIP-5559 link --- ERCS/erc-7694.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 6c6966cf01..cab187b944 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -98,7 +98,7 @@ Since EVM and SVM have differing architectures, it is important to define precis For other encoding-specific datatypes such as `bytesN` (`N < 32`) and `address` (`N = 20`), this specification requires that all such variables must be padded up to `bytes32`. Using this strategy, most current use-cases of `StorageHandledBySolana()` are accounted for. ## Rationale -`StorageHandledBySolana()` works in a similar fashion to `StorageHandledByL2()` in [EIP-5559](/.eip-5559) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM datatypes. +`StorageHandledBySolana()` works in a similar fashion to `StorageHandledByL2()` in [EIP-5559](./eip-5559) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM datatypes. ## Backwards Compatibility None. From 7a09d42beab435c3fc751734c99ec41e367184d7 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Fri, 19 Apr 2024 07:25:42 +0530 Subject: [PATCH 07/30] ERC-7694: Fix link to discussion --- ERCS/erc-7694.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index cab187b944..45f849428b 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -3,7 +3,7 @@ eip: 7694 title: Solana storage handler for CCIP-Write description: Cross-chain write deferral protocol incorporating storage handler for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) -discussions-to: https://ethereum-magicians.org/t/eip-7694-solana-storage-handler-for-ccip-write/19706 +discussions-to: https://ethereum-magicians.org/t/erc-7694-solana-storage-handler-for-ccip-write/19706 status: Draft type: Standards Track category: ERC @@ -68,7 +68,7 @@ if (wallet.publicKey === account) { } ``` -In the above example, EVM-specific `bytes32`-type variables `programId`, `account`, `node`, `key` and `value` must all be converted to SVM-specific `PubKey` type. The equivalent `setValue()` function in the Solana program is of the form +In the above example, EVM-specific `bytes32`-type variables `programId`, `account`, `node`, `key` and `value` must all be converted to SVM-specific `PubKey` datatype. The equivalent `setValue()` function in the Solana program is of the form ```rust // Example function in Solana program From 7113ddc9343f6931ffba86e68d907f37b59b7b76 Mon Sep 17 00:00:00 2001 From: sshmatrix <19473027+sshmatrix@users.noreply.github.com> Date: Mon, 22 Apr 2024 13:46:35 +0530 Subject: [PATCH 08/30] Language modification by reviewer Co-authored-by: Andrew B Coathup <28278242+abcoathup@users.noreply.github.com> --- ERCS/erc-7694.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 45f849428b..9c4b098ff9 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -18,7 +18,7 @@ The following standard is an extension to the cross-chain write deferral protoco L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat write deferrals made to the Solana handler. -Solana is a cheap L1 solution that is fairly popular among Ethereum community and is widely supported alongside Ethereum by almost all wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. +Solana is a low cost L1 solution that is supported alongside Ethereum by multiple wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. ## Specification A Solana storage handler `StorageHandledBySolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling write operations on behalf of `msg.sender`. From 16b54a8b57754c16c98404dce7f2a4b6601ca2b4 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Tue, 30 Apr 2024 21:25:35 +0530 Subject: [PATCH 09/30] ERC-7694: Fix link to EIP-7700 draft --- ERCS/erc-7694.md | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 9c4b098ff9..fe5dc3c737 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -1,7 +1,7 @@ --- eip: 7694 -title: Solana storage handler for CCIP-Write -description: Cross-chain write deferral protocol incorporating storage handler for Solana +title: Solana Storage Router +description: Cross-chain storage router protocol incorporating storage router for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) discussions-to: https://ethereum-magicians.org/t/erc-7694-solana-storage-handler-for-ccip-write/19706 status: Draft @@ -11,21 +11,21 @@ created: 2024-04-18 --- ## Abstract -The following standard is an extension to the cross-chain write deferral protocol introducing storage handler for Solana. +The following standard is an extension to the cross-chain storage router protocol introducing storage router for Solana. ## Motivation -[EIP-5559](./eip-5559) introduces two external handlers for deferring write operations to L2s and databases. This document extends that specification by introducing a third storage handler targeting Solana as the storage provider. +[EIP-7700](./eip-7700) introduces three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. -L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat write deferrals made to the Solana handler. +L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat storage calls made to the Solana router. Solana is a low cost L1 solution that is supported alongside Ethereum by multiple wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. ## Specification -A Solana storage handler `StorageHandledBySolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling write operations on behalf of `msg.sender`. +A Solana storage router `StorageRoutedToSolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling storage on behalf of `msg.sender`. ```solidity -// Revert handling Solana storage handler -error StorageHandledBySolana( +// Revert handling Solana storage router +error StorageRoutedToSolana( bytes32 programId, bytes32 account ); @@ -43,15 +43,15 @@ function setValue( ) = getMetadata(node); // Arbitrary code // programId = 0x37868885bbaf236c5d2e7a38952f709e796a1c99d6c9d142a1a41755d7660de3 // account = 0xe853e0dcc1e57656bd760325679ea960d958a0a704274a5a12330208ba0f428f - // Defer write call to Solana handler - revert StorageHandledBySolana( + // Route storage call to Solana router + revert StorageRoutedToSolana( programId, account ); }; ``` -Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana handler must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate datatype) calldata that it originally received. +Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana router must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate datatype) calldata that it originally received. ```js /* Pseudo-code to write to Solana program (= contract) */ @@ -82,7 +82,7 @@ pub fn setValue( ... // Code for de-serialising, updating and re-serialising the data ... - // Write serialised data to account + // Store serialised data in account // [!] Stored data must be mapped by node & account ... } @@ -95,10 +95,10 @@ Since EVM and SVM have differing architectures, it is important to define precis | `bytes32` | `PubKey` | | `string` | `String` | -For other encoding-specific datatypes such as `bytesN` (`N < 32`) and `address` (`N = 20`), this specification requires that all such variables must be padded up to `bytes32`. Using this strategy, most current use-cases of `StorageHandledBySolana()` are accounted for. +For other encoding-specific datatypes such as `bytesN` (`N < 32`) and `address` (`N = 20`), this specification requires that all such variables must be padded up to `bytes32`. Using this strategy, most current use-cases of `StorageRoutedToSolana()` are accounted for. ## Rationale -`StorageHandledBySolana()` works in a similar fashion to `StorageHandledByL2()` in [EIP-5559](./eip-5559) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM datatypes. +`StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in [EIP-7700](./eip-7700) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM datatypes. ## Backwards Compatibility None. From 08f776a16944a37a179bc7350d516a0ca6469a0b Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Fri, 3 May 2024 14:53:50 +0530 Subject: [PATCH 10/30] ERC-7694: Complete list of type casting --- ERCS/erc-7694.md | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index fe5dc3c737..a4eada5458 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -51,7 +51,7 @@ function setValue( }; ``` -Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana router must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate datatype) calldata that it originally received. +Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana router must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate data type) calldata that it originally received. ```js /* Pseudo-code to write to Solana program (= contract) */ @@ -68,7 +68,7 @@ if (wallet.publicKey === account) { } ``` -In the above example, EVM-specific `bytes32`-type variables `programId`, `account`, `node`, `key` and `value` must all be converted to SVM-specific `PubKey` datatype. The equivalent `setValue()` function in the Solana program is of the form +In the above example, EVM-specific `bytes32`-type variables `programId`, `account`, `node`, `key` and `value` must all be converted to SVM-specific `PubKey` data type. The equivalent `setValue()` function in the Solana program is of the form ```rust // Example function in Solana program @@ -88,17 +88,32 @@ pub fn setValue( } ``` -Since EVM and SVM have differing architectures, it is important to define precise datatype castings from EVM to SVM. Some pre-existing custom but popular datatypes in SVM that equate to common EVM datatypes are: - -| EVM | SVM | -|:---------------:|:------------:| -| `bytes32` | `PubKey` | -| `string` | `String` | - -For other encoding-specific datatypes such as `bytesN` (`N < 32`) and `address` (`N = 20`), this specification requires that all such variables must be padded up to `bytes32`. Using this strategy, most current use-cases of `StorageRoutedToSolana()` are accounted for. +Since EVM and SVM have differing architectures, it is important to define precise data type castings from EVM to SVM. Some pre-existing custom but popular data types in SVM already equate to common EVM data types such as `PubKey` and `bytes32` respectively. This specification requires the following implementation of EVM to SVM type casting: + +| EVM | SVM | +|:---------------:|:------------------:| +| `uint8` | `u8` | +| `uint16` | `u16` | +| `uint32` | `u16` | +| `uint64` | `u64` | +| `uint128` | `u128` | +| `uint256` | `u256`† | +| `bytes1` | `bytes: [u8; 1]` | +| `bytes2` | `bytes: [u8; 2]` | +| `bytes4` | `bytes: [u8; 4]` | +| `bytes8` | `bytes: [u8; 8]` | +| `bytes16` | `bytes: [u8; 16]` | +| `bytes32` | `PubKey` | +| `bytes` | `bytes: Vec` | +| `string` | `String` | +| `address` | `bytes: [u8; 20]` | + +> † `u256` is not available natively in SVM but is routinely implemented via `u256` crate in Rust + +Using this strategy, most - if not all - current use-cases of `StorageRoutedToSolana()` are accounted for. ## Rationale -`StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in [EIP-7700](./eip-7700) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM datatypes. +`StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in [EIP-7700](./eip-7700) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. ## Backwards Compatibility None. From a657d1a5299dcbb60181a59ddff4125d044a4d65 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Fri, 3 May 2024 15:06:22 +0530 Subject: [PATCH 11/30] ERC-7694: Update link to discussions --- ERCS/erc-7694.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index a4eada5458..b486609afa 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -3,7 +3,7 @@ eip: 7694 title: Solana Storage Router description: Cross-chain storage router protocol incorporating storage router for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) -discussions-to: https://ethereum-magicians.org/t/erc-7694-solana-storage-handler-for-ccip-write/19706 +discussions-to: https://ethereum-magicians.org/t/erc-7694-solana-storage-router/19706 status: Draft type: Standards Track category: ERC From 473c21073cd0788238fa52a32fbc01373527b20d Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Fri, 3 May 2024 16:56:26 +0530 Subject: [PATCH 12/30] ERC-7694: Add flow chart --- ERCS/erc-7694.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index b486609afa..7be2f407c3 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -115,6 +115,25 @@ Using this strategy, most - if not all - current use-cases of `StorageRoutedToSo ## Rationale `StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in [EIP-7700](./eip-7700) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. +``` +|--------| |-------------------| |----------------| +| Client | | Ethereum Contract | | Solana Program | +|─-------| |-------------------| |----------------| + | | | + | setValue(calldata) | | + |>>---------------------------->-------------------------->>| | + | | | + | revert StorageRoutedToSolana(programId, account) | | + |<<----------------------------<--------------------------<<| | + | | | + | Execute on Solana [programId] [account] [callData] | | + |>>---------------------------->---------------------------->---------->------->>| + | | | + | response | | + |<<----------------------------<----------------------------<----------<-------<<| + | | | +``` + ## Backwards Compatibility None. From 316c98253a08556b81c8365eedb6497b89f3ae16 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 23 May 2024 07:06:28 +0530 Subject: [PATCH 13/30] ERC-7694: Introduce CCIP-Store for readability and ease-of-reference --- ERCS/erc-7694.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 7be2f407c3..1fd8280299 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -1,7 +1,7 @@ --- eip: 7694 title: Solana Storage Router -description: Cross-chain storage router protocol incorporating storage router for Solana +description: Cross-chain storage router protocol (CCIP-Store) incorporating storage router for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) discussions-to: https://ethereum-magicians.org/t/erc-7694-solana-storage-router/19706 status: Draft @@ -14,7 +14,7 @@ created: 2024-04-18 The following standard is an extension to the cross-chain storage router protocol introducing storage router for Solana. ## Motivation -[EIP-7700](./eip-7700) introduces three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. +Cross-Chain Storage Router Protocol, aka CCIP-Store, introduces three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat storage calls made to the Solana router. @@ -113,7 +113,7 @@ Since EVM and SVM have differing architectures, it is important to define precis Using this strategy, most - if not all - current use-cases of `StorageRoutedToSolana()` are accounted for. ## Rationale -`StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in [EIP-7700](./eip-7700) in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. +`StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in CCIP-Store in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. ``` |--------| |-------------------| |----------------| From a57b5457833621a5800abaec9d214fb552b1b1a4 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Wed, 12 Jun 2024 09:26:39 +0530 Subject: [PATCH 14/30] ERC-7694: SVG image and some of the requested changes --- ERCS/erc-7694.md | 23 +- assets/erc-7694/images/Solana.svg | 549 ++++++++++++++++++++++++++++++ 2 files changed, 552 insertions(+), 20 deletions(-) create mode 100644 assets/erc-7694/images/Solana.svg diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 1fd8280299..e0eba913d0 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -14,7 +14,7 @@ created: 2024-04-18 The following standard is an extension to the cross-chain storage router protocol introducing storage router for Solana. ## Motivation -Cross-Chain Storage Router Protocol, aka CCIP-Store, introduces three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. +Cross-Chain Storage Router Protocol (CCIP-Store) introduced in [EIP-7700](./eip-7700), describes three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat storage calls made to the Solana router. @@ -115,24 +115,7 @@ Using this strategy, most - if not all - current use-cases of `StorageRoutedToSo ## Rationale `StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in CCIP-Store in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. -``` -|--------| |-------------------| |----------------| -| Client | | Ethereum Contract | | Solana Program | -|─-------| |-------------------| |----------------| - | | | - | setValue(calldata) | | - |>>---------------------------->-------------------------->>| | - | | | - | revert StorageRoutedToSolana(programId, account) | | - |<<----------------------------<--------------------------<<| | - | | | - | Execute on Solana [programId] [account] [callData] | | - |>>---------------------------->---------------------------->---------->------->>| - | | | - | response | | - |<<----------------------------<----------------------------<----------<-------<<| - | | | -``` +![Fig.1 Solana Call Lifecycle](../assets/eip-7694/images/Solana.svg) ## Backwards Compatibility None. @@ -141,4 +124,4 @@ None. None. ## Copyright -Copyright and related rights waived via [`CC0`](../LICENSE.md). +Copyright and related rights waived via [CC0](../LICENSE.md). diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg new file mode 100644 index 0000000000..af1953225c --- /dev/null +++ b/assets/erc-7694/images/Solana.svg @@ -0,0 +1,549 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Execute on Solana [programId] [account] + + + setValue(calldata) + + + + + + L1 + + + + SOL + + + CONTRACT 1 + PROGRAM 2 + + + + + + + + + + + + + + + + revert StorageRoutedToSolana(programId, + account) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + response + + + + CLIENT + + [callData] + + From a96dc554c81a7eeee588c9782c2a1dc4c13fc5e5 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Wed, 12 Jun 2024 11:29:46 +0530 Subject: [PATCH 15/30] ERC-7694: Dark-theme compatible SVG --- assets/erc-7694/images/Solana.svg | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg index af1953225c..b5abe61ab1 100644 --- a/assets/erc-7694/images/Solana.svg +++ b/assets/erc-7694/images/Solana.svg @@ -184,11 +184,11 @@ borderopacity="1.0" inkscape:pageopacity="1" inkscape:pageshadow="2" - inkscape:zoom="0.30141365" + inkscape:zoom="0.27243931" inkscape:cx="897.93858" inkscape:cy="386.90925" inkscape:document-units="mm" - inkscape:current-layer="layer1" + inkscape:current-layer="g1159" showgrid="false" inkscape:window-width="1426" inkscape:window-height="847" @@ -517,7 +517,7 @@ @@ -532,7 +532,7 @@ id="tspan1096" x="84.649086" y="112.60667" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';stroke:#000000;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CLIENT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';fill:#8c8c8c;fill-opacity:1;stroke:#8c8c8c;stroke-width:0.771;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CLIENT Date: Mon, 17 Jun 2024 16:44:08 +0530 Subject: [PATCH 16/30] ERC-7694: Fix abstract --- ERCS/erc-7694.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index e0eba913d0..1b1b41d5bc 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -11,7 +11,7 @@ created: 2024-04-18 --- ## Abstract -The following standard is an extension to the cross-chain storage router protocol introducing storage router for Solana. +The following standard is an extension to the cross-chain storage router protocol introducing the storage router for the Solana blockchain. With this specification, any Ethereum L1 contract can defer a call to the Solana blockchain as part of its core functionality, provided that the client is equipped to handle a Solana transaction. It was previously possible to defer write and storage operations to other Ethereum L1 contracts, L2 contracts, and off-chain databases, and this document extends that functionality to include alternative L1 chains. This standard extends Ethereum's capability to utilise a broader set of cross-chain blockspaces, and puts it well ahead of other L1 ecosystems in its ability to interface with cross-chain infrastructure. ## Motivation Cross-Chain Storage Router Protocol (CCIP-Store) introduced in [EIP-7700](./eip-7700), describes three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. From 00afbecc8933710ca71d8c8844af691d4e5ed116 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Tue, 18 Jun 2024 12:34:42 +0530 Subject: [PATCH 17/30] ERC-7694: Better abstract language --- ERCS/erc-7694.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 1b1b41d5bc..30c824999a 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -1,7 +1,7 @@ --- eip: 7694 title: Solana Storage Router -description: Cross-chain storage router protocol (CCIP-Store) incorporating storage router for Solana +description: Cross-chain storage router protocol incorporating storage router for Solana author: Avneet Singh (@sshmatrix), 0xc0de4c0ffee (@0xc0de4c0ffee) discussions-to: https://ethereum-magicians.org/t/erc-7694-solana-storage-router/19706 status: Draft @@ -11,7 +11,7 @@ created: 2024-04-18 --- ## Abstract -The following standard is an extension to the cross-chain storage router protocol introducing the storage router for the Solana blockchain. With this specification, any Ethereum L1 contract can defer a call to the Solana blockchain as part of its core functionality, provided that the client is equipped to handle a Solana transaction. It was previously possible to defer write and storage operations to other Ethereum L1 contracts, L2 contracts, and off-chain databases, and this document extends that functionality to include alternative L1 chains. This standard extends Ethereum's capability to utilise a broader set of cross-chain blockspaces, and puts it well ahead of other L1 ecosystems in its ability to interface with cross-chain infrastructure. +The following standard is an extension to the cross-chain storage router protocol introducing the storage router for Solana blockchain. With this specification, any Ethereum L1 contract can defer a call to Solana blockchain as part of its core functionality, provided that the client is equipped to handle Solana transactions. It was previously possible to defer write and storage operations to other Ethereum L1 contracts, L2 contracts and off-chain databases, and this document extends that functionality to include alternative L1 chains. This standard allows Ethereum to utilise a broader range of cross-chain blockspaces, and puts it well ahead of other L1 ecosystems in its ability to interface with diverse cross-chain infrastructures. ## Motivation Cross-Chain Storage Router Protocol (CCIP-Store) introduced in [EIP-7700](./eip-7700), describes three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. From 8bd15786d275b2ba9a8b09a5e05a841c136d614e Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Tue, 18 Jun 2024 19:36:58 +0530 Subject: [PATCH 18/30] ERC-7694: SVG tuned to ethereum.org's dark theme --- assets/erc-7694/images/Solana.svg | 100 +++++++++++++++--------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg index b5abe61ab1..09365189d6 100644 --- a/assets/erc-7694/images/Solana.svg +++ b/assets/erc-7694/images/Solana.svg @@ -9,8 +9,8 @@ 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" + height="246.26625mm" + viewBox="0 0 538.99292 246.26625" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" @@ -26,7 +26,7 @@ image/svg+xml - + @@ -179,16 +179,16 @@ + transform="translate(-33.411763,-64.921999)"> setValue(calldata) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.26869px;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';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) L1 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';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 @@ -331,7 +331,7 @@ id="path1225" sodipodi:nodetypes="cc" /> @@ -341,34 +341,34 @@ 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" /> + 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" /> CLIENT + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';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 Date: Thu, 20 Jun 2024 15:53:39 +0530 Subject: [PATCH 19/30] ERC-7694: Add Schema.svg for Solana --- assets/erc-7694/images/Schema.svg | 1657 +++++++++++++++++++++++++++++ 1 file changed, 1657 insertions(+) create mode 100644 assets/erc-7694/images/Schema.svg diff --git a/assets/erc-7694/images/Schema.svg b/assets/erc-7694/images/Schema.svg new file mode 100644 index 0000000000..ed4f0b2647 --- /dev/null +++ b/assets/erc-7694/images/Schema.svg @@ -0,0 +1,1657 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OffchainLookup(sender urls[] calldata callback() extradata ) + callback() + + + + extradata + + + + + + + + + Read + return + gateway + result + + + EIP-3668 + EIP-7694 + L2 + database + SOLANA + storage + + + + + + + + + + + L2 + DATABASE + SOLANA + + STORE + gateway + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + requires CID/keygen + + requires signature + + + + + + + + + + requires $ payment + + + + + + ns1 + ns2 + ns3 + + + + + + + + + + + ns1 + ns2 + ns3 + + + + + + + + + json-rpc + http + + API + metadata + + + + + + + + + + + + + json-rpc + + + + IPFS + ARWEAVE + IPNS + ar + IPFS + IPNS + arns + ipfs2 + ar-io + EIP-7700 + EIP-7700 + + From 70c79df6d505d8c263cf5ec5a9689283500505ed Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 20 Jun 2024 16:26:35 +0530 Subject: [PATCH 20/30] ERC-7694: Add Schema.svg to text --- ERCS/erc-7694.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 30c824999a..60d1602bb7 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -20,6 +20,8 @@ L2s and databases both have centralising catalysts in their stack. For L2s, this Solana is a low cost L1 solution that is supported alongside Ethereum by multiple wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. +![Fig.1 CCIP-Store and CCIP-Read Workflows](../assets/eip-7694/images/Schema.svg) + ## Specification A Solana storage router `StorageRoutedToSolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling storage on behalf of `msg.sender`. @@ -115,7 +117,7 @@ Using this strategy, most - if not all - current use-cases of `StorageRoutedToSo ## Rationale `StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in CCIP-Store in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. -![Fig.1 Solana Call Lifecycle](../assets/eip-7694/images/Solana.svg) +![Fig.2 Solana Call Lifecycle](../assets/eip-7694/images/Solana.svg) ## Backwards Compatibility None. From 4b0c17e39a5d53a4c9d128a3d93e022b172bb872 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Tue, 17 Sep 2024 14:24:44 +0530 Subject: [PATCH 21/30] ERC-7694: Optimise images for light theme --- assets/erc-7694/images/Schema.svg | 201 ++++++++++++++++-------------- assets/erc-7694/images/Solana.svg | 33 +++-- 2 files changed, 124 insertions(+), 110 deletions(-) diff --git a/assets/erc-7694/images/Schema.svg b/assets/erc-7694/images/Schema.svg index ed4f0b2647..15dcbbdea4 100644 --- a/assets/erc-7694/images/Schema.svg +++ b/assets/erc-7694/images/Schema.svg @@ -8,9 +8,9 @@ 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="419.61325mm" + height="251.54825mm" + viewBox="0 0 419.61326 251.54825" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" @@ -26,7 +26,7 @@ image/svg+xml - + @@ -234,9 +234,9 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="0.43422394" - inkscape:cx="859.2257" - inkscape:cy="393.64982" + inkscape:zoom="0.2942876" + inkscape:cx="570.88252" + inkscape:cy="236.94892" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" @@ -245,10 +245,10 @@ inkscape:window-x="0" inkscape:window-y="37" inkscape:window-maximized="0" - fit-margin-top="20" - fit-margin-left="20" - fit-margin-right="20" - fit-margin-bottom="20" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" inkscape:document-rotation="0" showguides="false" units="mm" /> @@ -256,7 +256,14 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-7.6321621,-18.227982)"> + transform="translate(-8.1813936,-18.777214)"> + + style="opacity:0.498392;fill:#df9a00;fill-opacity:1"> @@ -410,14 +417,14 @@ ) 7694 L2 database SOLANA storage + style="opacity:0.498392;fill:#ffffff;fill-opacity:0.141129;stroke:#ffffff;stroke-width:0.2;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"> L2 + style="fill:#d59300;fill-opacity:1;stroke:#c88a00;stroke-width:0.272908;stroke-opacity:1">L2 DATABASE + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SPOTNIK;-inkscape-font-specification:SPOTNIK;fill:#2fa100;fill-opacity:1;stroke:#2fa100;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">DATABASE + style="opacity:0.498392;fill:#2fa100;fill-opacity:1;stroke-width:0.471595" /> + style="opacity:0.498392;fill:#cf00e3;fill-opacity:1;stroke-width:0.35886" /> + style="opacity:0.498392;fill:#cf00e3;fill-opacity:1"> + style="opacity:0.498392;fill:#0077e0;fill-opacity:1;stroke-width:0.35886" /> + style="opacity:0.498392;fill:#0077e0;fill-opacity:1"> @@ -1052,7 +1059,7 @@ + style="opacity:0.254019;fill:#ffffff;fill-opacity:1"> + style="opacity:0.254019;fill:#ffffff;fill-opacity:1;stroke-width:0.35886" /> + style="opacity:0.254019;fill:#ffffff;fill-opacity:1"> @@ -1107,7 +1114,7 @@ + style="opacity:0.495177;fill:#ffffff;fill-opacity:1;stroke-width:0.999361;stroke-miterlimit:4;stroke-dasharray:none"> requires CID/keygen @@ -1142,16 +1149,16 @@ d="m 301.20166,266.82658 c 0,-0.39411 0.28976,-0.7136 0.64723,-0.7136 h 2.58891 c 0.35748,0 0.64724,0.31949 0.64724,0.7136 v 4.2816 c 0,0.39414 -0.28976,0.71361 -0.64724,0.71361 h -2.58891 c -0.35747,0 -0.64723,-0.31947 -0.64723,-0.71361 z m 1.12947,4.13829 7e-5,-3.7e-4 2.5e-4,-10e-4 10e-4,-0.007 c 6.8e-4,-0.005 0.004,-0.0153 0.005,-0.0271 0.005,-0.0235 0.0112,-0.0573 0.02,-0.0978 0.0172,-0.0815 0.0418,-0.18924 0.0708,-0.29593 0.0228,-0.084 0.0473,-0.16255 0.0718,-0.22616 0.0306,0.0673 0.0626,0.15125 0.0971,0.2431 l 0.01,0.0264 c 0.0378,0.10078 0.0785,0.20947 0.11857,0.29429 0.0216,0.0458 0.0474,0.0944 0.0778,0.13401 0.0236,0.0308 0.0837,0.10159 0.17779,0.10159 0.10554,0 0.175,-0.07 0.21283,-0.12033 0.0342,-0.0457 0.0625,-0.10214 0.0821,-0.14144 l 0.005,-0.01 c 0.009,-0.0185 0.0171,-0.0339 0.0239,-0.0468 0.006,0.0123 0.0145,0.028 0.0237,0.0465 l 0.005,0.008 c 0.0197,0.0395 0.0478,0.0964 0.0826,0.14244 0.0385,0.051 0.10802,0.12019 0.21339,0.12019 0.0829,0 0.16411,-0.0461 0.21678,-0.08 0.0611,-0.0391 0.1239,-0.0893 0.17839,-0.13619 0.0551,-0.0473 0.10517,-0.0945 0.14116,-0.12936 0.018,-0.0175 0.0329,-0.0323 0.0432,-0.0425 l 0.0154,-0.0157 10e-4,-7.6e-4 c 0.0651,-0.0676 0.0685,-0.18054 0.007,-0.25233 -0.0613,-0.0718 -0.16362,-0.0752 -0.22872,-0.008 l -5.9e-4,6.5e-4 -0.002,0.003 -0.01,0.0109 c -0.009,0.01 -0.0223,0.0224 -0.0388,0.0381 -0.0329,0.0319 -0.0778,0.0743 -0.12641,0.11596 -0.0492,0.0424 -0.099,0.0815 -0.14213,0.10912 -0.013,0.008 -0.0237,0.0145 -0.0322,0.0191 -0.01,-0.017 -0.0217,-0.0402 -0.0382,-0.0734 l -0.001,-0.004 c -0.0203,-0.041 -0.0503,-0.10105 -0.0889,-0.15005 -0.0418,-0.0529 -0.11273,-0.11718 -0.21631,-0.11718 -0.10344,0 -0.1744,0.064 -0.21629,0.11677 -0.0388,0.0491 -0.0692,0.10953 -0.0897,0.15057 l -0.004,0.007 c -0.0279,-0.0647 -0.0578,-0.14411 -0.0908,-0.23166 l -0.009,-0.0219 c -0.0412,-0.10939 -0.0872,-0.23082 -0.13473,-0.32508 -0.0236,-0.0468 -0.0521,-0.0963 -0.0863,-0.13647 -0.0303,-0.0356 -0.0912,-0.0946 -0.17946,-0.0946 -0.0894,0 -0.15012,0.0602 -0.1806,0.0975 -0.0339,0.0416 -0.061,0.0926 -0.0828,0.14053 -0.0442,0.0975 -0.0827,0.22066 -0.11386,0.33508 -0.0316,0.11623 -0.0578,0.23164 -0.076,0.31735 -0.009,0.0429 -0.0162,0.0789 -0.0213,0.10419 -0.002,0.0123 -0.005,0.025 -0.007,0.0376 l -4.2e-4,10e-4 -7e-5,5.6e-4 c -0.0176,0.0967 0.0392,0.19092 0.1268,0.21025 0.0876,0.0194 0.17286,-0.0432 0.19044,-0.13983 z m -0.15863,-3.94568 c -0.0894,0 -0.16181,0.0799 -0.16181,0.17839 0,0.0985 0.0724,0.17838 0.16181,0.17838 h 1.94169 c 0.0893,0 0.16181,-0.0799 0.16181,-0.17838 0,-0.0986 -0.0724,-0.17839 -0.16181,-0.17839 z m -0.16181,0.967 c 0,-0.0986 0.0724,-0.17839 0.16181,-0.17839 h 1.94169 c 0.0893,0 0.16181,0.0799 0.16181,0.17839 0,0.0984 -0.0724,0.17839 -0.16181,0.17839 h -1.94169 c -0.0894,0 -0.16181,-0.0799 -0.16181,-0.17839 z m 0.16181,0.6244 c -0.0894,0 -0.16181,0.0799 -0.16181,0.1784 0,0.0986 0.0724,0.17839 0.16181,0.17839 h 1.94169 c 0.0893,0 0.16181,-0.0798 0.16181,-0.17839 0,-0.0986 -0.0724,-0.1784 -0.16181,-0.1784 z" fill="#000000" id="path2432-7-4-8-0" - style="fill:#ffffff;fill-opacity:1;stroke-width:0.339802;opacity:0.49517685" /> + style="opacity:0.495177;fill:#ffffff;fill-opacity:1;stroke-width:0.339802" /> requires signature @@ -1182,18 +1189,18 @@ requires $ payment ns1 ns2 ns3 ns1 ns2 ns3 json-rpc http @@ -1429,12 +1436,12 @@ sodipodi:nodetypes="cc" /> API @@ -1451,14 +1458,14 @@ y="297.26746" id="tspan2163-0-2-6-4-3-0-7-4-0-1-9-4">metadata json-rpc @@ -1589,7 +1596,7 @@ id="text2139-0-1-8-8-8-0-7-6-3-9-9-9-0-7-2-5">IPNS ar-io EIP-7700 EIP-7700 diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg index 09365189d6..9af264951f 100644 --- a/assets/erc-7694/images/Solana.svg +++ b/assets/erc-7694/images/Solana.svg @@ -8,9 +8,9 @@ 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.26625" + width="538.89404mm" + height="246.64348mm" + viewBox="0 0 538.89404 246.64348" version="1.1" id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" @@ -184,21 +184,21 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="0.33384564" - inkscape:cx="1136.7003" - inkscape:cy="466.43854" + inkscape:zoom="0.30795506" + inkscape:cx="1449.0633" + inkscape:cy="574.25397" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" - inkscape:window-width="1426" - inkscape:window-height="847" + inkscape:window-width="1252" + inkscape:window-height="891" inkscape:window-x="23" inkscape:window-y="37" inkscape:window-maximized="0" - fit-margin-top="20" - fit-margin-left="20" - fit-margin-right="20" - fit-margin-bottom="20" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" inkscape:document-rotation="0" showguides="false" units="mm" /> @@ -206,7 +206,14 @@ inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-33.411763,-64.921999)"> + transform="translate(-33.442081,-64.684853)"> + Date: Tue, 17 Sep 2024 22:27:48 +0530 Subject: [PATCH 22/30] ERC-7694: CCIP-Read methods for Solana --- ERCS/erc-7694.md | 122 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 95 insertions(+), 27 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index 60d1602bb7..ee1c35179f 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -11,18 +11,21 @@ created: 2024-04-18 --- ## Abstract -The following standard is an extension to the cross-chain storage router protocol introducing the storage router for Solana blockchain. With this specification, any Ethereum L1 contract can defer a call to Solana blockchain as part of its core functionality, provided that the client is equipped to handle Solana transactions. It was previously possible to defer write and storage operations to other Ethereum L1 contracts, L2 contracts and off-chain databases, and this document extends that functionality to include alternative L1 chains. This standard allows Ethereum to utilise a broader range of cross-chain blockspaces, and puts it well ahead of other L1 ecosystems in its ability to interface with diverse cross-chain infrastructures. + +The following standard is an extension to the cross-chain storage router protocol introducing the storage router for Solana blockchain. With this specification, any Ethereum L1 contract can defer a call to Solana blockchain as part of its core functionality, provided that the client is equipped to handle Solana transactions. It was previously possible to defer write and storage operations to other Ethereum L1 contracts, L2 contracts and off-chain databases, and this document extends that functionality to include alternative L1 chains. The data stored on Solana must be translated to [EIP-3668](./eip-3668)-compliant format by an appropriate HTTP gateway where it can be retrieved by generic Ethereum contracts. This standard allows Ethereum to utilise a broader range of cross-chain blockspaces. ## Motivation -Cross-Chain Storage Router Protocol (CCIP-Store) introduced in [EIP-7700](./eip-7700), describes three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. + +Cross-Chain Storage Router Protocol (CCIP-Store) introduced in [EIP-7700](./eip-7700), describes three external routers for routing storage to L1 contracts, L2s and databases. This document extends that specification by introducing a fourth storage router targeting Solana as the storage provider. L2s and databases both have centralising catalysts in their stack. For L2s, this centralising agent is the shared security with Ethereum mainnet. In case of databases, the centralising agent is trivial; it is the physical server hosting the database. In light of this, a storage provider that relies on its own independent consensus mechanism is preferred. This specification instructs how the clients should treat storage calls made to the Solana router. -Solana is a low cost L1 solution that is supported alongside Ethereum by multiple wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. +Solana is a low cost L1 solution that is supported alongside Ethereum by multiple wallet providers. There are several chain-agnostic protocols on Ethereum which could benefit from direct access to Solana blockspace; ENS is one such example where it can serve users of Solana via its chain-agnostic properties while also using Solana's own native storage. This development will encourage more cross-chain functionalities between Ethereum and Solana at core. ![Fig.1 CCIP-Store and CCIP-Read Workflows](../assets/eip-7694/images/Schema.svg) ## Specification + A Solana storage router `StorageRoutedToSolana()` requires the hex-encoded `programId` and the manager `account` on the Solana blockchain. `programId` is equivalent to a contract address on Solana while `account` is the manager wallet on Solana handling storage on behalf of `msg.sender`. ```solidity @@ -46,19 +49,22 @@ function setValue( // programId = 0x37868885bbaf236c5d2e7a38952f709e796a1c99d6c9d142a1a41755d7660de3 // account = 0xe853e0dcc1e57656bd760325679ea960d958a0a704274a5a12330208ba0f428f // Route storage call to Solana router - revert StorageRoutedToSolana( + revert StorageRoutedToSolana( programId, account ); }; ``` -Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana router must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate data type) calldata that it originally received. +Since Solana natively uses `base58` encoding in its virtual machine setup, `programId` values that are hex-encoded on EVM must be `base58`-decoded for usage on SVM. Clients implementing the Solana router must call the Solana `programId` using a Solana wallet that is connected to `account` using the `base58`-decoded (and casted to appropriate data type) calldata that it originally received. ```js /* Pseudo-code to write to Solana program (= contract) */ // Decode all 'bytes32' types in EVM to 'PubKey' type in SVM -const [programId, account, node, key, value] = svmPubkey([programId, account, node, key, value]) +const [programId, account, node, key, value] = E2SVM( + [programId, account, node, key, value], + ["bytes32", "bytes32", "bytes32", "bytes32", "bytes32"] +); // Instantiate program interface on Solana const program = new program(programId, rpcProvider); // Connect to Solana wallet @@ -66,13 +72,13 @@ const wallet = useWallet(); // Call the Solana program using connected wallet with initial calldata // [!] Only approved manager in the Solana program should call if (wallet.publicKey === account) { - await program(wallet).setValue(node, key, value); + await program(wallet).setValue(node, key, value); } ``` In the above example, EVM-specific `bytes32`-type variables `programId`, `account`, `node`, `key` and `value` must all be converted to SVM-specific `PubKey` data type. The equivalent `setValue()` function in the Solana program is of the form -```rust +```rust // Example function in Solana program pub fn setValue( ctx: Context, @@ -90,40 +96,102 @@ pub fn setValue( } ``` -Since EVM and SVM have differing architectures, it is important to define precise data type castings from EVM to SVM. Some pre-existing custom but popular data types in SVM already equate to common EVM data types such as `PubKey` and `bytes32` respectively. This specification requires the following implementation of EVM to SVM type casting: - -| EVM | SVM | -|:---------------:|:------------------:| -| `uint8` | `u8` | -| `uint16` | `u16` | -| `uint32` | `u16` | -| `uint64` | `u64` | -| `uint128` | `u128` | -| `uint256` | `u256`† | -| `bytes1` | `bytes: [u8; 1]` | -| `bytes2` | `bytes: [u8; 2]` | -| `bytes4` | `bytes: [u8; 4]` | -| `bytes8` | `bytes: [u8; 8]` | -| `bytes16` | `bytes: [u8; 16]` | -| `bytes32` | `PubKey` | -| `bytes` | `bytes: Vec` | -| `string` | `String` | -| `address` | `bytes: [u8; 20]` | +Since EVM and SVM have differing architectures, it is important to define precise data type castings from EVM to SVM. Some pre-existing custom but popular data types in SVM already equate to common EVM data types such as `PubKey` and `bytes32` respectively. This specification requires the following implementation of bijective EVM to SVM type casting: + +| EVM | SVM | +| :-------: | :---------------: | +| `uint8` | `u8` | +| `uint16` | `u16` | +| `uint32` | `u32` | +| `uint64` | `u64` | +| `uint128` | `u128` | +| `uint256` | `u256`† | +| `bytes1` | `bytes: [u8; 1]` | +| `bytes2` | `bytes: [u8; 2]` | +| `bytes4` | `bytes: [u8; 4]` | +| `bytes8` | `bytes: [u8; 8]` | +| `bytes16` | `bytes: [u8; 16]` | +| `bytes32` | `PubKey` | +| `bytes` | `bytes: Vec` | +| `string` | `String` | +| `address` | `bytes: [u8; 20]` | > † `u256` is not available natively in SVM but is routinely implemented via `u256` crate in Rust Using this strategy, most - if not all - current use-cases of `StorageRoutedToSolana()` are accounted for. +Finally, in order to read the cross-chain data stored on Solana in an arbitrary Ethereum contract, it must be translated back into EVM tongue by an [EIP-3668](./eip-3668)-compliant HTTP gateway. The arguments for a generic call to the gateway URL must be specified in the `/`-delimited nested format as described in [EIP-7700](./eip-7700). The core of such a gateway must follow + +```js +/* Pseudo-code of an ERC-3668-compliant HTTP gateway tunneling Solana content to Ethereum */ +// CCIP-Read call by contract to a known gateway URL; gatewayUrl = 'https://read.solana.namesys.xyz/programId/node/key/' +const [programId, node, key] = parseQuery(path); // Parse query parameters from path; path = '/programId/node/key/' +// Decode 'bytes32' types in EVM to 'PubKey' type in SVM +const [programId, node, key] = E2SVM( + [programId, node, key], + ["bytes32", "bytes32", "bytes32"] +); +// Instantiate program interface on Solana +const program = new program(programId, rpcProvider); +// Call the Solana program to read in cross-chain data +const value = await program.getValue(node, key); +if (value !== "NOT_FOUND") { + // Decode 'PubKey' type in SVM to 'bytes32' type in EVM + const value = S2EVM(value, "PubKey"); +} else { + // Null value + const value = "0x0"; +} +// Compile CCIP-Read-compatible payload +const data = abi.encode(["bytes"], [value]); +// Create HTTP gateway emitting value in format 'data: ...' +emitERC3668(data); +``` + +In the above example, the generic `getValue()` function in the Solana program is of the form + +```rust +// Example getValue() function in Solana program +pub fn getValue<'a>( + ctx: Context, + node: Pubkey, + key: Pubkey, + account: &AccountInfo<'a>, // Lifetime-bound parameter +) -> Result { + // Validate that the account belongs to the correct program ID + ... + // Retrieve the data from the account + let data = &account.data.borrow(); + // De-serialise the data from the account + ... + // Look up the value by node and key + match deserialised.get(&node, &key) { + Some(value) => { + msg!("VALUE: {:?}", value); + Ok(value) + }, + None => { + msg!("NOT_FOUND"); + Err(ProgramError::InvalidArgument) + } + } +} +``` + ## Rationale + `StorageRoutedToSolana()` works in a similar fashion to `StorageRoutedToL2()` in CCIP-Store in the sense that the client needs to be pointed to a certain contract on another chain by the revert event. Other than that, the only technical difference is casting between EVM and SVM data types. ![Fig.2 Solana Call Lifecycle](../assets/eip-7694/images/Solana.svg) ## Backwards Compatibility + None. ## Security Considerations + None. ## Copyright + Copyright and related rights waived via [CC0](../LICENSE.md). From 8e7c07765f151e0c12efa97ea5ff3e8ca881de89 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Tue, 17 Sep 2024 22:51:49 +0530 Subject: [PATCH 23/30] ERC-7694: More image optimisations --- assets/erc-7694/images/Schema.svg | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/assets/erc-7694/images/Schema.svg b/assets/erc-7694/images/Schema.svg index 15dcbbdea4..f6668d5c76 100644 --- a/assets/erc-7694/images/Schema.svg +++ b/assets/erc-7694/images/Schema.svg @@ -26,7 +26,7 @@ image/svg+xml - + @@ -234,16 +234,16 @@ borderopacity="1.0" inkscape:pageopacity="0" inkscape:pageshadow="2" - inkscape:zoom="0.2942876" - inkscape:cx="570.88252" - inkscape:cy="236.94892" + inkscape:zoom="0.5624167" + inkscape:cx="812.4223" + inkscape:cy="426.52396" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="1470" inkscape:window-height="891" - inkscape:window-x="0" - inkscape:window-y="37" + inkscape:window-x="-60" + inkscape:window-y="89" inkscape:window-maximized="0" fit-margin-top="0" fit-margin-left="0" @@ -258,7 +258,7 @@ id="layer1" transform="translate(-8.1813936,-18.777214)"> Date: Tue, 17 Sep 2024 22:59:29 +0530 Subject: [PATCH 24/30] Update ERCS/erc-7694.md Add `requires: 7700` Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7694.md | 1 + 1 file changed, 1 insertion(+) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index ee1c35179f..a53a58dad5 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -8,6 +8,7 @@ status: Draft type: Standards Track category: ERC created: 2024-04-18 +requires: 7700 --- ## Abstract From 0e5039bc9192c59b05e4b1afac8e67ec0736fa23 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Tue, 17 Sep 2024 23:21:09 +0530 Subject: [PATCH 25/30] ERC-7694: Minor fixes --- ERCS/erc-7694.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index a53a58dad5..ebe9d983fa 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -125,8 +125,8 @@ Finally, in order to read the cross-chain data stored on Solana in an arbitrary ```js /* Pseudo-code of an ERC-3668-compliant HTTP gateway tunneling Solana content to Ethereum */ -// CCIP-Read call by contract to a known gateway URL; gatewayUrl = 'https://read.solana.namesys.xyz/programId/node/key/' -const [programId, node, key] = parseQuery(path); // Parse query parameters from path; path = '/programId/node/key/' +// CCIP-Read call by contract to a known gateway URL; gatewayUrl = 'https://read.solana.namesys.xyz////' +const [programId, node, key] = parseQuery(path); // Parse query parameters from path; path = '////' // Decode 'bytes32' types in EVM to 'PubKey' type in SVM const [programId, node, key] = E2SVM( [programId, node, key], From 49098e17067f2247de72921136ffb964e8fc9f16 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Fri, 27 Sep 2024 16:07:23 +0530 Subject: [PATCH 26/30] ERC-7694: Add font files & refer in SVGs --- assets/erc-7694/fonts/SF-Mono.woff2 | Bin 0 -> 17620 bytes assets/erc-7694/fonts/Spotnik.woff2 | Bin 0 -> 5628 bytes assets/erc-7694/images/Schema.svg | 232 ++++++++++++++-------------- assets/erc-7694/images/Solana.svg | 36 +++-- 4 files changed, 142 insertions(+), 126 deletions(-) create mode 100644 assets/erc-7694/fonts/SF-Mono.woff2 create mode 100644 assets/erc-7694/fonts/Spotnik.woff2 diff --git a/assets/erc-7694/fonts/SF-Mono.woff2 b/assets/erc-7694/fonts/SF-Mono.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..edc701f952b14625b5b4968e627d33d653e27ba5 GIT binary patch literal 17620 zcmV(>K-j-`Pew8T0RR9107TRP5C8xG0Hp{307P;C0RR9100000000000000000000 z0000#Mn+Uk92y=5U;u-D2!Rp_oD2~N3W4`aZ2gI8_5^e|1$ZG%Ej7Z8^zb*U!|C-zw1A9=b`yq?7Dp5jr&uT67Y+AX5P3aU= z3za3)M^4*0&`cpk@hq)$*T>KIdY64nh+U^l{j1pu^%x|aEe3H&fgYBnJv8?}6!uOu}} zhGm6q1#-18O9*iD+SjQ1y}HszR3)syC=(z%KnD)Va7dbdQx)yccz% z1t4nKQPQ+!;gXMoXe0?C7-B~d-_3^ie6^hNg~F?2 z!oD792qu`wiXt=mcse&a9tQyUO#{CB=Sctn;_K(p0)WA%I|~E=Isgs=pa22F76>o^ zC;(8iUsVPUEI%{555U8fuE4O*6v9XgTu=*-q3wY~2AuEr<#wjIVeHbJtQuMp#&_j+lGqbU{#TT#*3i$8^ zT{_?T|2{bkfI!?ohK%*){nJ2t!d!<({9=iBY{ewt=X;c4_WS<#98A5u0buYB7=zS- z@#5a!;ToPlisO8wBP7mnXZHZGSFAWIRy_isL^x&j33La zqvkG~CvX4nPnOG~tmST9y_xAS<3=LkpIywd- zeS8C-#59Blzl;t7Sydnk0Dk}g03akDFh`QTLjeGQeC4TEN_ypun@h`Uk5^WQ!S!3< z#m46AEfD)?9i-)@=I0a^6&I9OfU+7|HMl()0RV^tXQKm26{^ek3#JReKN|e@;YxPt z@WVf)dE)R>zNeJg{a1j={5Q<@Y{+}L0)VRkC>11_;riuR>-C?+So#MjDMu(^PJnN0 zB}A)zaQ9bX9DcLd&!IVYT?*fvK@<5v<>fGas?qBdTbSY`@M_j&}|LDRxFzHCB_oh|!1RU(ZSps+IRiF_djsUcQSiYyz!FbW)+02X&U5@bmYqg{xFp`7D$P|PZzBT1{AekIP( zEQ%ihkp*#)n6eY6pRyR)Tr1Y{RHyI|H52h`$z%!wtrHYIT^XF(lw=6v$HS zlp(FCkEs!4393KzpfjLR!kaRz?%9Z&rQCpZh2&pIH76X-0bO-zy z=I%*~01^CWDF&;ANGNF}k~(B4VG>I^8A%2iOI2-C*M*T*_bgKebZsa~ z-8gUQ2-=@_UUXFLFQ05F5-fqn{Xpeei6B55WROA*79?0Gz(NTYDzH$4g$684!9okR zv;^hSN>-H)VWNVsq7bK!dUL6+nKcr6(7NA0SvDYAq>Y?nKg(7PT^cve&X4<=LtGLS&pEb z7I7~C-csL#Qk;-o%Tt`;GC;vp?%WHaMw1UHlSP0ul)3el!(OG}>}hovLR!x{Ry9iR+V2F8o`EE0ZnCtIq0dxGtVRVTO@ znHA$?51C3q_RetKygWmpVUCVY4M-Qj>KcZwzG-y480s{glMC%X?3oJ73aPoo z6G|=@Z$W`ekb{cbe4utq?TDpZvbg5)XNg^(eDoc)wfxg@v3tMKZvi)9w)(e$+YnNl ztJhhEGh77>&9LU;9dc1Mt%BDxOv7AJpR zkJH9wA)nkF1Qk<8b&w^e+)p9RN+fkue1;aFmhicRP@-P}U`U!~H>^q)0%BhQ;7C@w zI1!K{cx@8@N`RnE50SxYYg6SBCs#O8*Ms*Gg(PgE7})lSRu~X_4>==(W&U-s*Ykb<)iP@c+TXIr%?X z{zsF4Ck}oedGIxW5A_)2;sOprr;n>4U|{eXWLw`x{%zZP#IvkDB}3%D*Pa(Q5+G6Q zm$sL*A3J1t3f#6o;K6ac3U)VR<5G?VV;6Bie}=#|u124u`J*mrV}!>0+e`!i0u^SD zSy{MxLd2jtowTLuTX(YtgWD1$A>T(l`3-jN)m(8a4Y?U4CGUGLFYGv!kWAsNt}&IW z$=0RZ&Jlg&c$lThPOLA>40^depnKe3i2LWN4aooGDn=z66rbXHAt8Oe9GQ)%#9KC; zTsPuFcKk0(f6VWGAwd-Kx5=EeU+_MK%9)xKyru37x(*#XG9Y`e0Yn9zH8~72CDiMy ziCB;QUJ8dj{s2^ST(vGLq$Zu)?_0cbv0yy!U)%hcy;E z087K05jkCQje21xNSd)PN#l9-R7pc@cG0N*NOHJ~heVdQ=xta`B?$(d88wQ)kFB%g z82rct!cNELIJUHtR3!$9gA6x=0+~OAV+!YSGY0Udn&%{i5qxa&zgi=~t`3FsB-F5I zN0cfBvln)bbPiEQIn_0X>oY5!l2iFETm#~R*nf4d-d^RX+vr&&dHuE$C0{M|<Tez^aicwkKb`qGg*dffa<4Yus=Q`lAf@0;FD z-B$l*DWIUpQ3#q8~35F=kQ%V*;1-LDXD%RUhlAsOC{}4c76x z45Vy*#-Zi12>BsSUei7B*Q6~{xWU=_2R9GSb8jDV^ftQxY+x_lioh2V3s{8O_j4D( z|6dr3lK(fkvLRG34eiy;$Y8U*ezC=UYo{dlsnZ3!A`1KenaGT%pihHI`NH zfSpiB$vQ)I3*|2KpoY68y{;KC;wW|!C!xju-_WhLwl-8;+7!)oMe!rrWK*rpfC9#E z4$AYNIB4{^nVd}IiV5;Y^dXY$8M+kA%-0o84b()HpzS$_xiq1wOPdLET>()j>neUM z#hs~}^194!t-d6S5(?bSDux>r^id^IN1+HRVmJ!sq3oZue2OHe42_F<6geFY(6eG| z*b$wPc}`{hNc5=VMc(7lf;rO^XWbMD2D{@)o1_}mNqmExa*oKx8e8oE#_*xz&@kc5@iB~N6Z166nyQOy+p17n<>oSRsu?+!l+HIu z>bO7Xt7WwrPWx-Ejmq5aGG^-RNqTh0$LZ+i$w{7OcY)`-jd*UJ7HG~Ot^T#D#wal_ zm0Lg&X@Kqt$a_?GK@)it66?mu<$0R$6zC9Dcx&iB>{*3j8dRMkq$skjgg&*pe$46| z0e98b9QY611eK&MDMBWpLYR?cr&7jOg@y~9x$a(S(Ottf^`D z0Q}!eoys3ea@HhnLkeI?+?DG2*Yq|5QNC58by-^NByEJi)S!g|^2ixNVL?x)K>Hvs;N323#G6)3oFbz z;8O4iE39A1ALF3@>%2_(y-+TSa0AcZj}_f zh$9oEX?0!8v;w+48%~k#K&_Q<({ko`srH_ca}2t=s(!G9IzHTYoR!KXK8_^%zUoG`p z-NvG>2y-&k0kk{29<$JeGF7n3!&Q|`ky^kYG_pvVmHVN(&LW!-xcL^ro69%zRLDFU z-%Fp~mc>Cc36^iwmjx_VQUg!Ys0_Q|3cr;@mwM+YetJwvGB;RP;tB-LZ{OY#uZ9KFKd`oUql^HA0ShHt@a4LL70u#gOKx`74rXWG# z*Nl*`rf__GsS9o$dLYH~UKQm zY0cWh@JWy-lPp$!qql}ODSIBL+*gZjn@1AiLSwn2ic14bFDpu&R2Ih3fUwF^gQa%v zVkM?0>$!^1A(%-+_T#gh;fr$WV{IfRaN&PnhsQ|LB=5ved*Twt?Q+HAII(PTw8gaJ zDENzsqP>`aUD$h{S{oyT`~(I^FXdltisseup=aKZ0r|(kKN9p__l0q-OB$g7>Su@; zIJY}Di5tev$wTD1%!Aia8WdLNtjATB%vuqL0)NbobTSo zpt95bh|%GH4Uub_6W8ej?_bSg!s5ba(EmNXb-_^Tj% z0P|u6$!O&D&Q1$Loi2a(ud=n+zlg$2Nv&iS`4{8m%4RRjmYJIQdR_1`^F1S#)T*>z zY6=CEbl^j{MPYS5(R$0neIH9$Zte3wm!P=`flUhJN0+wTdZVsaWH*uSJ{lNCfO({JPD@+h13KEQ|fK3;S0`dQ~WmE zjyubUG<<8q`+(MX@dP>6; zT4_WmC40X*n=6XNJN|8bcJliYGb6n(>KL{Z-*TODP2m0d8s-((SUXQ-UqLRVt0W<% zk5XkSsa8=c%Geqb)wqv(Qr}#=QMak45prxEw#7Zl<_Yg9PAy~)R#Mp`g`PF`3Rdl~ zN)>^o0=YG8aK`P~Kd48~FlcL&^o7R)0&9=>1Rkfl?fX?Fof(DP%RlCrx%VsojPdQi zutLV)FYxP?*LkhI|Z=5$8Mqt2!qvv^wWkO-^VSQo~C2YVD7! zwZFc?6*VT0z8TGFp34%$h8$1nie>#>EBLdRgqJxkNE|<`1sco zi3fqS;{*R*jj(e;#} zx2=AU8}M{1^*c|{G7hpKWyA!AWL-f9*WapZ9_CK2%yr7N#^B`zoA z@U*_(Y1(N`eP<2*(@jj{VoQ<3+4RoxjJipk)tdIUQ7Yf(SX)`+4$ay*8eE9Ekks%k zxnc0Q0AqsxgQrMY2XMy9?5l~6xPrbAJf;lQd%OGwY*j*r=kcrB=J?16YC-{KIuhE| zmzAD2nBM#M0xhqM-2yEbSmNW@{3l`}50Mu!`M1plhwctS%lifkdk6PkLS7E-o#Tcx zDE*_;|dwhSN{S!t^gx7zCguq@5z>9jj3wj5B-M_)TUJ9G8?$TT4Rn`mOjNS;Zh+c_< z9}Uuh(hVZszqpAwlj$~1#i1CGKhe0)pWYo!c z7VE5_F+yFG+ESjI(@;?^Gh=n32f!KIkAJ?ID=A+~keBhgt5uNNg^C@>5$`UDCS}Ex zOC^fVs*g`KjDlzD_aW=Z!7fx-eNt*+eNreXC9+5|S!_vT{1#&pwX^jSyQ#X=2jGw) zx-fm{=(D`DJ<|h>zMh{bkqwl{&z?TUz|rItp{#`gNxB!KLOu%ua$i$7;eW2#WEc1S2y(67%so>z>vzqf=a5#dcAt9 zM@s_B$r$$zzSh0#Lz@R2Z%f`DaBL3k-c;2i*H<+S@HX~WkKUZOso#>wcfzHO7(Ma& z*V6pr^mq6~Y@3IqGv2Nn!1vlS02Y_^8KDBolOt#xYiU~W#+KozyBsXr&T zd4P)7gim~^#pHBg4XL)|((1wt7GBD+(<63b>(}Dc()Q1ru`EwXC%%pj-J9PZ4^060 z9y187;4?%{>K}VJd6P}4NGMLtX=N9t*eYe4#@pKHoD(Vi8|R!3Uu$({akNxKu}Ggk zL7S<2YRJpl%PR64@Ih62dUY5fy6Q`DI2Zhv56GX7JVGfgWCQpfyBxK?`;ggXYM)sg z^&q_X2!Ol#T`)5g6Qg~cD>S_n?YmL)X|~ABzQ6A@-5MI6&z9_FZRPKRwZZdS$Gh1@ zMAzC}*Ja#9EBXvz+ULR4EjG3CN)chUO107g{5}7m8_bPKE$5ie3AbEp&Ta-3yp)*Y zs*NC^HOVKqZf8duUcsf6I9tctxZw&HyfRSoJ>9<`Mr=@47;yK~R3tMIovCCGY7Jh=w($WU1$KW0v zve(K-e4OKnQ9j<3z@Yh?jVwQjatRGX2VHjDLgc>g2>xp>3cr#&EIh3{e$+}+7fmUh zkP&@zl}@756}J8w;2pPd>xldYC+*zCZa@RkI$iM(Y&=cBL!n*?uePC%Scm1 zMXlEqj=3lZ?;DNsL5ooMuSLTm6koGhThmKsU?pB|MHZD%VVo+bA%=>pP`U6WKW`+z zVD#l*L-Aol@xL!ear2S9d~&#fbtX@6V+sX|rEn~TV4lp!cPyOjHuJh3ATjm0guHIT z(E*J>wH^KnicK64Xl3m{s(H*AeFJS%MVYe(ZZJZFAf={1#XR=3-uu%rQj|>Ak%l?@ z;J=H|kG$_fps(A+PD{LCL!-w#iUhjZU2LJ-A7@9Wra!ieu-L3Zf!-d@qz)eQOfOOf zl||{KRJ3M$=DO&Z0S4nsL-Mhf+aS?S&=^H|uG1Ph3Kn(=sJj)146 z_Xwpx(Ap6A5PKc8aQY_GLQIyPM^cLZn0jrNes_z>q`C+T3Qhv;S!-?iHPu4L6$O%mX}KfSSHr>=I-Oh6kwS8;#0M^HRqM0 z(DkA$ROUaCBu`WA1c;CrZ<`dRyuGk1B+l1bkKj_#!P;m?X7_LzrP*Efy5eYZ*4@fe zuvkvTW}Ot85qJ!@>M&8f-qp)ks>ft^ap}cbxp~Gqn&`M$T^1;nQLtR|$*Bqz#Oad#_D&NbF<8e$2A|@2luvNw@j&LZ7TeqQ^7rD0jXg(N;7svzeBhz%Fj$ z{)jfV^(44jc%G|h<&L~nKyB@BtO%})#mE{Kn!9PI!HA4LcLvP8lA;p5L_)lXjv0O7 zNJCO~qfGq1JpjEDatuQ7cCk6DWA9zEn3Xx{wNFb?dLt{nqm;g=^rNigw<=Q>UX~f3 z4E+O3VpzT#7ac8EN+CsDRmucAJPdl3pX(rpvJtdUFj)+JLwUoh6wmP3MQl(|l|Jb2 z#V5N35p`^S+a&f5_y6OQJU{OYa|4A^2AlEBuA(7dJc{k&R5&0cR~2+dx8!% zOEc30_&V4)rTdcg4X~k`=22!+2FIbFzWApFk2Bbg{=SXfR z(LJpGig{rS`9jixr@3azb5TPcjgrWu{L2T>M;08G^C~&}qR_6CvhL*C?z8mn-0U~$ zkgv~ti<6>4b3jWtlo^!+f%x3P1_<-(K{^OT@e!(&5!ySXFxk4D)kpO=@l zJgJl}Ujp&YkBSP(^tIQuaQww-0d;mVcBe*tDvE~sR0}PrsrJh$_NuF89Zhr1^gxul z;#70yp2jgBCc=-e(tjzOaCbhtm(*$CW0L`{2<|&MehdkmLEnWZN36#5RTdzQrt$N4 z^(j4}BmVw-&qM~2)_^t7bcCJTaLQJ`bqNy0_`h{a8 zXn9g{RGF8urP%QshayTE7DuOd29+jG$wnCsHJvq2Oh0d$b0}w#Lkdnh&NY8p@V}>r zh1p&T4Q1jhq>J!hg1wKC9##^)?reC^MnOZtUJu=7&^mEo_$Zul{4}4pU5an@<^l^Q zKmD1;od~$BW{(Il)N70UteqjKC2k7-uaDm+e1}VqJ0&TpjOnXrm^|GRG&OlGAO+Z2 zWTB}+t;b*Wg0DJSzuX~FP0O}(;5$nkX|(3fi2l*NdCyh#Ps$sXoZCYb#NfU0msv1S z(W)86&uq_zLS3R;e;yJsYcq|j+qUd~o@-?p-T>#}!{tVAup+l1S2>?}0ZShh;ZdH- zRwt^PbC@J1M3;B2ew<_IRF0umSE&Yf?vZa$@>hE%^Eo@s zHMMp*jMaXX;}e_*uh9W#TPt5VFfs~`Ha0dg42f~wMn*x=%H@`Y#3FPvNPCnML6TD! zT|??yNB6JKsHA*Ams?P6-Kmz8*r5-;7uFdAJ<~bRvf5dZhjREQr^_n0l!;Vnh-wbC0#z=n)qW25fec-ZRx~y}u|x8B zw|*}2$8l76?l6Xs#EDlsv0HDhyAXzX?7#hy7Y2WXl?%IE2iNCs-rk(+i%J>sm&7;X z`)<`v9K4>l(c^6lwaG8a&PeMlYB=3Em5*`uEBqHixV(ZtCYx?)*Q-K!+dA;v6PBUtzjlO}0*POCSQMlk(>FMfve{L5db) zN)J8@-Ji|Ot|%|Q{wylXLGu8#OgyIL*oF8Wm(JsF)Q~56o{nE zR)OE~2P|78bTt0D6vs;j!eoPJaXwdSdI}|#kKe#~2D(Ps>e$;N3`%)3+ZjoOOp>Sr z+%#U6|IdkZA*%BF?HE#O^av?dIjkZI$5N+5jZ=3w~1U&8j zcr%YugeUmOWP{n-Iah`5{#oAp4)M3`kxxY zQ0~z}GJ9$k=Q!E<8f(`~YBhN>`xNBi*5MBX-L?Cl>9$h(`78Tdb=xV!`300=URZg; z2SOk?i>**f{0e9 z0sBIXSKz;Qarrq}aW*j#ZEIx{y5{Se*JE`-CZ?e_6J)FlFmHj2Y;tR5&qi!yljSbm zbFwnJQq*$IO*%VF&SoAVzE1T&9de0R((NTrd^`~6s%4TEQvCAC+!yDpWjvFwyR>Dd z%06dDl!02Y7Xmj%gpFNYuP`enAI_rt9sOQ_(vCL%gcQq&P<&19GRvzq?5I#hYd32N z;?942&s@X5BJ}Vb^Z-swk2IgO6Wt?X;?=Lk*`?P%_h?x)eKZQKrZ+Q()#M?bI%cPsibm=ROaN zrnvKeDMbl_lRV#8LUdT?K8iE9Mz0^9*^!3)_W^Ar)&6h%Uw9*VV@6G7+yI~Kmg31J zFM*ag%~nQrU0nbDxa!*5l+Y2V;(>yRexarnuE#edzD0b$fV#)J>-Qfdi{%{UUKc7n2xsGgWz8vfJb9%aTOL6txtheQF$qjd^9{4{gBqB|BnGui9dOZ2Q^EVU~ zPH!*%%F`_TmBnJScFK3GhVL+*y$A3YYyc;yQzJc+E`*djgY#zn5TK$nzzH+`sNTQ# z>zMx@NiD@ESqjr_n&16Li7)OiBOq1?vroXLp3m z`S+@slb9|UH5A%*Hpr3EM z%QOT3%o5ta@9OZet$W_|xF$I5(S?sZXdPwRVA=-24Z`2vy`46rco1Ma?&`~}D1U;p z8L|8npWX!ogfJ46j51cH`6#&5-8~bZf3GAVCTRsF^iBo5Jg;egU6`$>J&Lw+^sA48yIVCBLB3fRIo!f+ zGtIkp)}Oc)7KMA#FwkAzMQlE)za8tHwRPV4x)P^M+NKsaaSLPz0Ivjpht8BEeJ(r8_l`S zqVu{hK0ykrR&zHWJ*QQ!+r7f4y)7i6R}mD-QnEy@ovN%s8GtKDePxP5Ud~1MCcNit zX77*4`u3o!wFY8mP!K8H0yV8JSDwsy?B8++J9~SYG1{~H;Cd66&+Zt^z^a|PSKuT@R!({cyMrOO)~ zxKWQ#Q1%}2HayGXNvJ7=l;rpk7(EFI<_xHA8yA8YWIVk(A?K;)#;%dw?wo}aAwxxi zs^sIuPqOr>#J9I~jzTnz4TW*##B7mB#&rsqggKii$#bhsYO=xOrq8+&VV@8HBaT?I zs}VOey*GZiQnU+Rrsj{kN@j09$go0cpDRLj9~|b&1lAp5pmt{*^MCb2|d73R6{p<>88lBVAR{l;^Xh3>ok%ZoQZ(y4say}x~J-$viLR#7a3Kd0*No^41l7%&@?-~d_x3gkI@Sm>dqqK6@$%#3HN#GIt(x~@PNH;dK5HWt z+9Tx3kh>UB!SqbE2kYU97AbgWrx*o3X_|*R5JaqHw>wHU zg9Zo5I~FG#LdU-6(H)i2 zJ*&qCO_I5#DJiBP7G)NpTXyWMU)L4Hj!Oj_c!SbnVCygER|#7saL0M39AK5 z)zvJI6@Y7ud-Gxf7O31VDO+CRqAHd~k-=+X_FL1ldd(U#2-~eo!Op=UE_;6{GCy-m zEg3jK%?5SQLUHF>0MbGV3A# z9<3hY^wd{Q!R(_ciWjAx%yHci#Lq~9ReAwk+_HEf8F#>%-iG4NO0DRN-)5k&-e2ms zKTA0o1-~S9o8Sp5#SJxk{8ses*^xU zVbiZTURn%;7=|JHtWE$3Vr<1pP193(LJ)uV3Hzm*99SBZQK0;AkP9ONPgs5BjXW0H zLBY)jc*e(G42**v5l68)?gF`=9=+c9TMJRq*Qj#QN8vq+oe+qKj-d`4t~JjY%6fgF zJU1^zd-jm+5DA`oBDPBxEXT{BFrp9W71ubWmlVLILX_xP*PZFYl~RoII8*C5wKa4M zxm07)Tu&KigMml2Z#5Jbxi|EMSGT4$O&!v#>m}E~3?kMrj0Mt54`*H?bf0^jRMBJm zauf>hRQ(rTxC>O}3)d~vI^n0_o z(uLb_t%&+zfWLcJeki#}| zJSX>~4U0G{$yoHuo-VRx&J%?ds`5X_5S1&5KM2PcYGc0=J!^46awtX!`#Seu$ML~< zQ~TL0HHL@)e4=@cv-_ZBycow<%sGw{#23tWUukgBI?SFkXJh!4u0;VP> zii@ExWg{U4Psj!n*}>tbk3=L659(n<-VSkYM6u4IB#SuEp3c8?k5YCDWnY6A>K85- z(0u$d=}jOy%7bm7%l69e0k(wstaku+XG3%E`Y)$>s>n(G?xu|QPa$ZhMb6S0_TF$vuWSxvXktz-$6^w z>dgnpXDFlq2G71G7MARVLcFC^U~hjk$ot#y1z%Dt@X0<)v-Kmqc4N$INi}o289(*m zQ2tG^>2_L|em##kfA#M~`$%QR8*0?c)tuTCkDs+PujxB+OZ}pW(v0LNc=tt65R+Eaw;h?|G4SqMdI1|I1n24NfnD8h9BP#+QW zL0*U_={SzUKu~Y_+WHy;8a8cv+^?m*5ws1?kD+35TS6tW?W%1h-UF%yIW9+tJCi66 zX-?XXjWcWb(>~)modQ-3bSAXyXkzO7;w`e}4%(}a0W-RnBfE)jWf^P6zI?}atqkjmH zxeosptDA?IOp{`e8I(JT+zcZLlftCXcPbIQoU6yRgeD0^ED*rvapFpD)`AC0%~#-0 zQ|_u0A0e{tEb$Nb#Qz?O3bhV6{Elf^m}Q7T0(4bvF1*%2cz@r$4R9EnKEudq z+a~38_V$8WI`>Y#C?6za9OE0{JJg@Jdm`Zv&&2({E41+fDNIBTNC7;g=0h}H)O%;r zC5iwjMYvLn_80Y^_Xu0!ctpapxwbSvliWu4Q_AmA)b*dY-n8q5X`SAcZ=1w6wrY-T z7Mi-#t2+fB*y~Jf>-#^xO{XC9yYt=jFg@&d+s%48YjIZ+cNQ5{>urkzgavKw zFvS3qPi!;rn}nM)JqI{W?E7iEYra*1jS9WCxP@K4ZWPl4={tz!>rv7hnN*px@B|&b z1mM*FqNySr24m#p$T4A=0t+&y zOfN=73Npz}A6MiHFKMU|2nV{2BRy`}G8_FYklfw(My-G=_^@P}3wzO2)EUrQuTg*| z$roEohmP^qOCc9@s~B-j3`GypM~I2ZVn`i;#+*O_5aqF1<+2tMxe6%yNh`^`9qc}G zc!+|I@NtN`4_P=~KOh-|96^FgIw8xO8GzrqKr?1{=FT->#Y|;tupAEym-gY;Fo~f@Oo(?%XRY1(@!b zq3tc)Rx*DIz3-8gU7}{)c#^55zdoA%+5}|JlRv%$wHiY!4 zu@a?;#qbXGrO;cQ>NWj*hL%2}Ut3P)>0>gE2EO3be%ZW0)snS#>w4NV*r+I_>pqVJ z&(-p6N$IiV{y8Qo*2PHoD9^;+g%ea z%PO&BwP+cv%soEFJYl77c^xhnvuP=_G#Q8MXq|3k*jPv?ANM5mjZB{t56|&3!5{bj z?3VFo2!Gg|;+Eh&9IR`8nd}_xx+10!&8-hoV@ZZA=v|Qei-ChssGcQMOdXw<3J5Mn zZ1b~&zj7AEBIWf#oytAvH6E&1QoU6_6>`3k%!KlV!%m+=?>T%^hEj=jvO?$P$#X( zEeZ_XG8ZLCC`i()l<9ui=VX>?)%$+AD?N@-SGSA&zP%EMwQh|OePTiYpz&QfNx{fR zqgSXYN}%5tFz-LtFeV~~W0Q0iGMFQ0=;v71wdTuXA!icN3KA22*5t;U>b)L}jfLAC zEQ_Gnv8-~>k3%z4aS~A>C9m*XOqvc?y-S|7 zb<}neG(fz&TjTqB&?n8Ch~ml9LM&cUt2TD9W`<^7oIS6quIk0*blh*To>y2s){j-# z@4nwXq+U&*X&PUgmXqS8rN}$B-I=Cc<4wuMQ+lEMQ34CdJf|>M$*WI>pKMplS!*D> zRERq+KTr$z*xoV4Z;@(;*#=9s?z=?( zaZ3-?zgApI6Xz54n@QA$#cLTO+LMeX zb_SWBq-keMoV6hq8=K#*3sG-ztVB+2p&m_02EE?fnGAOMjLlID?e-SnvPB(us&h|7 z_8ajtUknKx=~J;($t$*u@pEhxdLuPj>b*Dmsw`yg)vap&2qAjx5KeI3kmf)gM4C~B{Lsw*>2$h#>>w|!w5}HJl|Vhwk;re7Ww9g zrwzszKFGJ~vdFRVgZ?5|P;in{-4HxBEDfWHQBqTiT5TGeT4&BbOO`W-RMvo?m&NrN z*--;4v`Ed?7ND7^<*;5G$d+ExN5DWYkk}HfrgRMrXO>m3m?hpE>Gr65-Zu5))5$2t zI73;q8ZzWWmRFLBFAgMM=`Z#=noh)`IY$GCw|$c1em#1XgnmDfybL;cEE#P#N{vtvUyZKKy*4p6Xytp8co zA<#?)pHt#1yyK$XYQvo)xfk(Nq|OSddHd+Fuc`a7nB^p!p4!Dg_?kAv^>Gsbe#TGa zaZ;7Ff_rt+rZSl7jF0tK#cv=*oyQK|$ibgM#;yXwJYd%Z#?Hh$XsiSb!cfeO$ocs1VE){qwjk?nMV2xChkzgJ-%cO@VigXdr z;zKdj+9kvS5=DdJ%kEX#{QWOaF-c$_vwbY~@nD}uCr`UIZtstZU$-DXUbm;&si_JH zPw*spQ5Lx~L2}fkm&1d0nvFi%3{!*CC0K_81FG&fDDtv@+bY>@dAX%QNtiHVlIVO_ zys^;up~xX4-e&)C_bIwa=*1(9<9%e2F1|+inG}h@U4F*v2q%`J(5MV30{@R3;hC}y z(5Y72Q_9~_`=R}o0PYzeO^MxjWW3@@O@&tV!I*I>NsI3&8GY@+y1A~7RcLWj01U;i zCDgB&y*EejSrkK{`0ZDp2#Ilo&u_32#Kb#~SK8HYKBAVKhy#-#_TV>JM$|ofBJ(Vz z)OO}kmf6i-_I`8B-Ft&~VZgt3)_kj3zsIqGHsj^M;IDydTs!0mVHH$FB0t-Rm=Omf_UKXcwH zHvUKdUseMU0gl!H2+01v2Ox9A1OQ=b!KcHk^MMhd4PTRfA*3WmkPm>EBogtYO(fX_ zh)>cABVdJTGLxhdSa!D`l-ZRAnjl>ixvG`8=c`WP5k!IoOh5)S!!G=TB%r}xXeaAQ zIc@JI2(V`WMxYSLb}}9SFtzk(xyHCMV{L~`S_=bk1ID1LaU2UKti|TMs3i$aa@}V5 zKowkt1-q$&Qd?ym3SotObrZ!Yt!um|nT2Agv-Rv`H|be$1764z0iYV9l2pgercdfj z-C^8*>I#5>d~EQ%5{p+G#(T3}us;I_M}+ezfV<${U$U*oAG}z}0KhqW%mkpnMJE-a z0P<{_EdWqx-9&~^3Zo80`|3`9HCx-#a7xpj$6A8LJ)FYBV?;SmP1dgflqHg;; zP?gMbquT)Jfqz$8CGwui^x$#bk0luq&|#=u{dT9#=ZR5n(niQQ%4~K^lw_ z8UaCcYX)6`8sE}LiyBZ5H@nH64m<-l!YSN;^r}vNHicB&>3$WTFFu5Jodb8c8i#go zxZ^cPXa|)Ulp-zE%9l{rX5cbE05k?NU!PJ@g>@dIfk9aBX)}xsxGe(E45Fnf)ph}` z1XBB?UBIekS7QbXM`(^hJ7}MDKiYUV7)KpAG8qks%fIEP=W{iyi@p35)~=-!(yZ=U&UuDllT9pCms~jZ^r=@d1_h)F+6wH7@`zF+T7D_ zxi+Tvu2Hm7$`!{l#O!ey!%o!{MC5iaHKYoG$G^Oca`7=~5)cVVq@}VBsrb$pyrHQz z6fy`55J66iwlsAzdazl_9m*2VI;`+r6T*06kfo0uID`m!1P%pGqdC{?L7twMvcah; z8G9O(y9#kxF$6~pyW>lAEZQu)c*dmri|LZv%b-7!m2^CM)DIx4-H{N&PKBdRqA#B| zld@5SpmPgD=Lba#j?tlujTZVdnJQJlA(2uqeZEtcOatX)_9+UYgug`>s5 zXzlX}De{r_-mSPAHNp^~VdYo2Pde&gA8uoM^n4U2$%N$VO;wTH!dkl!rC^3S2;85+ zfsR6GT69<&s(oFyFh4sM!3#ddYo>qbwORMCa6M0e5Z!T@RU0qzw zOpp?~aGf-`R3EwO=>~bg$S_)KL70{x)_v-L-X?z$_IO0RWgNk>Oh==(Zx3=~OB-v9 z&|(sUT{Olft{N$*A3n=!WwXwk;32et^uHeDyU^B{bwO$AqNBuIta*v0R@U_EQS+&fq_tDC^j-Skw|57QlV6-HKtlK za|=r=Ya3fTdk04+XBRha-MRPRk)qFlAtT02m@;F|f+Z`~F0x_k5`IM3lXYWm zup)*3ofNso8S}tYRrPdw^^r=~4c*HsS(A0ykWJZ=ZP}4s*=s+#T2lwKNl`@m)2Peu zuhNIQF21XWOZlcNiZBcFq}sfE^{!qgt9|%?$4128@`K8tSpQFiZtV;nvOB}%t4n^F zd~0ww?#3s^^4^UP@ous(8b;?w-kDYVPicmFsH2@=>O7wWi0r0`wZ&! z`!Q)s%}BpTcU4r1iuI)IU$32@ykzi~qfhba7Jiw0XW%d@qf;aKpzovq4f3yOBGo5) Ha}??&w-DxR literal 0 HcmV?d00001 diff --git a/assets/erc-7694/fonts/Spotnik.woff2 b/assets/erc-7694/fonts/Spotnik.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..52d0768f9518d555ee6f360558ccebc4b1050cb0 GIT binary patch literal 5628 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 WFA$2v5~)nCP^$c0HlR + @@ -571,11 +579,11 @@ id="tspan1207" x="100.41531" y="85.657547" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';text-align:end;text-anchor:end;fill:#0077ff;fill-opacity:1;stroke:#0077ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">OffchainLookup(OffchainLookup() callback(callback() + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;stroke-width:0.264583" /> extradata + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.65635px;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;text-align:end;text-anchor:end;fill:#4da0ff;fill-opacity:1;stroke:#4da0ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">extradata Read return gateway @@ -777,7 +785,7 @@ sodipodi:role="line" x="85.477348" y="179.85344" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.65635px;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';text-align:end;text-anchor:end;fill:#4da0ff;fill-opacity:1;stroke:#4da0ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.65635px;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;text-align:end;text-anchor:end;fill:#4da0ff;fill-opacity:1;stroke:#4da0ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="tspan1256-5-5" dy="0 0 0 0 0 0">result EIP-3668 EIP-7694 L2 database SOLANA storage @@ -904,7 +912,7 @@ sodipodi:role="line" x="374.2005" y="179.46164" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.75192px;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:0.141129;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.75192px;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:0.141129;stroke:#ffffff;stroke-width:0.2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" id="tspan1256-8-1-1-6" /> L2 DATABASE + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Spotnik;-inkscape-font-specification:Spotnik;fill:#2fa100;fill-opacity:1;stroke:#2fa100;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">DATABASE SOLANA STORE gateway @@ -1133,13 +1141,13 @@ requires CID/keygen @@ -1152,13 +1160,13 @@ style="opacity:0.495177;fill:#ffffff;fill-opacity:1;stroke-width:0.339802" /> requires signature @@ -1189,13 +1197,13 @@ ns1 ns2 ns3 ns1 ns2 ns3 json-rpc http @@ -1436,24 +1444,24 @@ sodipodi:nodetypes="cc" /> API metadata @@ -1503,12 +1511,12 @@ sodipodi:nodetypes="cccccc" /> json-rpc @@ -1529,7 +1537,7 @@ sodipodi:nodetypes="cccc" /> IPFS + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Spotnik;-inkscape-font-specification:Spotnik;fill:#cf00e3;fill-opacity:1;stroke:#cf00e3;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">IPFS ARWEAVE + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:Spotnik;-inkscape-font-specification:Spotnik;fill:#0077e0;fill-opacity:1;stroke:#0077e0;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">ARWEAVE IPNS ar IPFS IPNS arns ipfs2 ar-io EIP-7700 EIP-7700 diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg index 9af264951f..055127b433 100644 --- a/assets/erc-7694/images/Solana.svg +++ b/assets/erc-7694/images/Solana.svg @@ -15,7 +15,7 @@ id="svg6" inkscape:version="1.0.2 (e86c8708, 2021-01-15)" sodipodi:docname="Solana.svg" - inkscape:export-filename="/Users/sshmatrix/Idee/sshmatrix/Buidl/namesys-eth/namesys-ccip-write/images/keygen.png" + inkscape:export-filename="Solana.png" inkscape:export-xdpi="200" inkscape:export-ydpi="200"> + Execute on Solana [programId] [account] + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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">Execute on Solana [programId] [account] setValue(calldata) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:9.26869px;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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) @@ -280,7 +288,7 @@ id="tspan1096-9" x="338.12903" y="107.73608" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';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-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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 SOL + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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">SOL CONTRACT 1 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;fill:#0085ff;fill-opacity:1;stroke:#0085ff;stroke-width:0.282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">CONTRACT 1 PROGRAM 2 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;fill:#ff5300;fill-opacity:1;stroke:#ff5300;stroke-width:0.282;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">PROGRAM 2 revert StorageRoutedToSolana(programId, + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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 StorageRoutedToSolana(programId, account) + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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">account) response + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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 @@ -539,7 +547,7 @@ id="tspan1096" x="84.649086" y="112.60667" - style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'SF Mono';-inkscape-font-specification:'SF Mono';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 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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 [callData] + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:SF-Mono;-inkscape-font-specification:SF-Mono;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">[callData] From f4a9241c551dc1fd369cd35021e383b53cfab7c7 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 3 Oct 2024 15:11:52 +0530 Subject: [PATCH 27/30] ERC-7694: Add permissive fonts with licenses --- assets/erc-7694/fonts/Licenses/Rajdhani.txt | 93 +++ assets/erc-7694/fonts/Rajdhani.woff2 | Bin 0 -> 101796 bytes assets/erc-7694/images/Schema.svg | 633 ++++++++++---------- assets/erc-7694/images/Solana.svg | 221 ++++--- 4 files changed, 513 insertions(+), 434 deletions(-) create mode 100644 assets/erc-7694/fonts/Licenses/Rajdhani.txt create mode 100644 assets/erc-7694/fonts/Rajdhani.woff2 diff --git a/assets/erc-7694/fonts/Licenses/Rajdhani.txt b/assets/erc-7694/fonts/Licenses/Rajdhani.txt new file mode 100644 index 0000000000..437eef4530 --- /dev/null +++ b/assets/erc-7694/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. diff --git a/assets/erc-7694/fonts/Rajdhani.woff2 b/assets/erc-7694/fonts/Rajdhani.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..1783efede876d1af5f9a089380576ce81f66feff GIT binary patch literal 101796 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

20b%^| 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

tr+?f@S>rR-HNK|oYInn>{e7w=M+m4vRhF# zol{=YqCIdU+O2blq^0Jyae8E2W_&H2)9i|q%cVn_kz` z&uG4L47MvwUfjuX30u1X=DB@$c3W1?%yi&PBZTUF0F?C&cyjwDE^nMvdutgsQPu5d zh3k<(9p9$x( U*ZQ`Jnl%nTk}`FtoVAM)3iDOT-T(jq literal 0 HcmV?d00001 diff --git a/assets/erc-7694/images/Schema.svg b/assets/erc-7694/images/Schema.svg index 15b042afc6..a77c5c17b6 100644 --- a/assets/erc-7694/images/Schema.svg +++ b/assets/erc-7694/images/Schema.svg @@ -226,13 +226,12 @@ d="M 0,5.65 V -5.65" id="path1446-2-4-5" /> - @@ -487,7 +486,7 @@ transform="matrix(1.0311099,0,0,1.0311099,-21.289691,-18.164168)"> OffchainLookup(OffchainLookup[sender urls[] calldata callback() extradata extradata ) + y="135.21101" + 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:#0077ff;fill-opacity:1;stroke:#0077ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="tspan1263" + dy="-12">] callback(callback[) + y="192.22195" + 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:#0077ff;fill-opacity:1;stroke:#0077ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="tspan2014" + dy="-6">] + 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 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.65634999999999977px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#4da0ff;fill-opacity:1;stroke:#4da0ff;stroke-width:0.309333;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;">extradata Read + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.15521px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#0079ff;fill-opacity:1;stroke:#0079ff;stroke-width:0.489202;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="79.678528" + y="55.16235" + id="tspan2163-0-2-6-4-3-0-7-4-0">READ return + id="tspan2163-0-2-6-4-3-0-7-4-0-8">RETURN gateway + id="tspan2163-0-2-6-4-3-0-7-4-0-1">GATEWAY result EIP-3668 EIP-7694 L2 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.56684999999999963px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.419;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="158.22705" + y="70.133301" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8">L2 database + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6">DATABASE SOLANA storage + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9">STORAGE L2 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#d59300;fill-opacity:1;stroke:#c88a00;stroke-width:0.42;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="tspan1256-8">L 2 DATABASE + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#2fa100;fill-opacity:1;stroke:#2fa100;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">DATABASE SOLANA STORE gateway + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.84893px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.394113;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="-140.79312" + y="257.55066" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-9">GATEWAY 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 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 ns1 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.50057px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.460838;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="162.26462" + y="197.33644" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9-7">NS1 ns2 + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9-7-0">NS2 ns3 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.50057px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.460838;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="162.67552" + y="219.65933" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9-7-2">NS3 ns1 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.50057px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.460838;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="219.96104" + y="197.33675" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9-7-4">NS1 ns2 + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9-7-0-3">NS2 ns3 + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:4.50057px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0.460838;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="220.37125" + y="219.65933" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9-5-9-7-2-0">NS3 json-rpc + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8">JSON-RPC http + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8-7">HTTP API metadata + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:3.84893px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;text-align:end;text-anchor:end;fill:#ff0000;fill-opacity:1;stroke:#ff0000;stroke-width:0.394113;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + x="-139.90611" + y="297.25537" + id="tspan2163-0-2-6-4-3-0-7-4-0-1-9-4">METADATA json-rpc + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8-22">JSON-RPC @@ -1537,136 +1538,134 @@ sodipodi:nodetypes="cccc" /> IPFS + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#cf00e3;fill-opacity:1;stroke:#cf00e3;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">IPFS ARWEAVE + style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;font-family:Rajdhani;-inkscape-font-specification:Rajdhani;fill:#0077e0;fill-opacity:1;stroke:#0077e0;stroke-width:0.49;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">ARWEAVE IPNS ar + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-9">AR IPFS IPNS arns + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-1-4-7-0-1">ARNS ipfs2 + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8-7-2">IPFS2 ar-io + id="tspan2163-0-2-6-4-3-0-7-4-0-1-8-6-8-7-6">AR-IO EIP-7700 EIP-7700 diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg index 055127b433..29752d8258 100644 --- a/assets/erc-7694/images/Solana.svg +++ b/assets/erc-7694/images/Solana.svg @@ -26,7 +26,7 @@ image/svg+xml - + @@ -176,13 +176,12 @@ x2="177.4453" y2="237.22786" gradientUnits="userSpaceOnUse" /> - Execute on Solana [programId] [account] + 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">Execute on Solana [programId] [account] 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] - - - L1 - - - - SOL - + + L1 + + SOL 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 PROGRAM 2 + x="528.17438" + 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">PROGRAM 2 revert StorageRoutedToSolana(programId, + 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 StorageRoutedToSolana[programId, account) + 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">account] response - - - - CLIENT + 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 [callData] + x="329.04959" + y="241.03384" + 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.271868;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">[callData] From 0027565e7b79453f5c041360df67dff767c2ecdb Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 3 Oct 2024 15:12:52 +0530 Subject: [PATCH 28/30] Update ERCS/erc-7694.md Add ERC-3668 in requirements Co-authored-by: Sam Wilson <57262657+SamWilsn@users.noreply.github.com> --- ERCS/erc-7694.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ERCS/erc-7694.md b/ERCS/erc-7694.md index ebe9d983fa..fc1be4506c 100644 --- a/ERCS/erc-7694.md +++ b/ERCS/erc-7694.md @@ -8,7 +8,7 @@ status: Draft type: Standards Track category: ERC created: 2024-04-18 -requires: 7700 +requires: 3668, 7700 --- ## Abstract From 62a85ea54ad2f6993050a8060f449894ed7b7654 Mon Sep 17 00:00:00 2001 From: sshmatrix Date: Thu, 3 Oct 2024 16:35:45 +0530 Subject: [PATCH 29/30] ERC-7694: Purge old font files --- assets/erc-7694/fonts/SF-Mono.woff2 | Bin 17620 -> 0 bytes assets/erc-7694/fonts/Spotnik.woff2 | Bin 5628 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 assets/erc-7694/fonts/SF-Mono.woff2 delete mode 100644 assets/erc-7694/fonts/Spotnik.woff2 diff --git a/assets/erc-7694/fonts/SF-Mono.woff2 b/assets/erc-7694/fonts/SF-Mono.woff2 deleted file mode 100644 index edc701f952b14625b5b4968e627d33d653e27ba5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17620 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 Ha}??&w-DxR diff --git a/assets/erc-7694/fonts/Spotnik.woff2 b/assets/erc-7694/fonts/Spotnik.woff2 deleted file mode 100644 index 52d0768f9518d555ee6f360558ccebc4b1050cb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5628 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 WFA$2v5~)nCP^$c0HlR Date: Sat, 12 Oct 2024 09:52:48 +0530 Subject: [PATCH 30/30] ERC-7694: Include font and license explicitly within SVG --- assets/erc-7694/fonts/Licenses/Rajdhani.txt | 93 ------------------ assets/erc-7694/fonts/Rajdhani.woff2 | Bin 101796 -> 0 bytes assets/erc-7694/images/Schema.svg | 101 +++++++++++++++++++- assets/erc-7694/images/Solana.svg | 101 +++++++++++++++++++- 4 files changed, 198 insertions(+), 97 deletions(-) delete mode 100644 assets/erc-7694/fonts/Licenses/Rajdhani.txt delete mode 100644 assets/erc-7694/fonts/Rajdhani.woff2 diff --git a/assets/erc-7694/fonts/Licenses/Rajdhani.txt b/assets/erc-7694/fonts/Licenses/Rajdhani.txt deleted file mode 100644 index 437eef4530..0000000000 --- a/assets/erc-7694/fonts/Licenses/Rajdhani.txt +++ /dev/null @@ -1,93 +0,0 @@ -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. diff --git a/assets/erc-7694/fonts/Rajdhani.woff2 b/assets/erc-7694/fonts/Rajdhani.woff2 deleted file mode 100644 index 1783efede876d1af5f9a089380576ce81f66feff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 101796 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

20b%^| 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

tr+?f@S>rR-HNK|oYInn>{e7w=M+m4vRhF# zol{=YqCIdU+O2blq^0Jyae8E2W_&H2)9i|q%cVn_kz` z&uG4L47MvwUfjuX30u1X=DB@$c3W1?%yi&PBZTUF0F?C&cyjwDE^nMvdutgsQPu5d zh3k<(9p9$x( U*ZQ`Jnl%nTk}`FtoVAM)3iDOT-T(jq diff --git a/assets/erc-7694/images/Schema.svg b/assets/erc-7694/images/Schema.svg index a77c5c17b6..44e6d5aa58 100644 --- a/assets/erc-7694/images/Schema.svg +++ b/assets/erc-7694/images/Schema.svg @@ -230,8 +230,9 @@ type="text/css" id="style864"> @font-face { - font-family: 'Rajdhani'; - src: url('../fonts/Rajdhani.woff2') format('woff2'); } + font-family: 'Rajdhani'; + src: url(data:font/woff2;base64,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) format('woff2'); + } 7700 + + \ No newline at end of file diff --git a/assets/erc-7694/images/Solana.svg b/assets/erc-7694/images/Solana.svg index 29752d8258..4e7b1d2133 100644 --- a/assets/erc-7694/images/Solana.svg +++ b/assets/erc-7694/images/Solana.svg @@ -180,8 +180,9 @@ type="text/css" id="style857"> @font-face { - font-family: 'Rajdhani'; - src: url('../fonts/Rajdhani.woff2') format('woff2'); } + font-family: 'Rajdhani'; + src: url(data:font/woff2;base64,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) format('woff2'); + } [callData] + + \ No newline at end of file