From b0ba22e49336e95fb93ee9b1034b2d0d97799d41 Mon Sep 17 00:00:00 2001 From: chase-45 Date: Wed, 17 Aug 2022 21:25:36 -0400 Subject: [PATCH] chapter 3 content additions --- src/SUMMARY.md | 14 +- src/dapps/architecture/0_dappDesign.md | 5 + src/dapps/architecture/1_keyConsiderations.md | 19 + src/dapps/architecture/2_ecosystems.md | 32 + src/dapps/architecture/3_protocolDesign.md | 31 + src/dapps/architecture/4_topology.md | 69 ++ src/dapps/architecture/5_relayers.md | 69 ++ src/dapps/xDex/designOverview.md | 0 src/dapps/xDex/governance.md | 0 src/dapps/xDex/remoteStaking.md | 0 src/dapps/xDex/simpleSwaps.md | 0 src/dapps/xDex/stablecoinHighway.md | 0 src/dapps/xDex/xDex.md | 14 + src/diagrams/images/ultralight.png | Bin 0 -> 73260 bytes src/diagrams/raw/ultralight.excalidraw | 690 ++++++++++++++++++ 15 files changed, 940 insertions(+), 3 deletions(-) create mode 100644 src/dapps/xDex/designOverview.md create mode 100644 src/dapps/xDex/governance.md create mode 100644 src/dapps/xDex/remoteStaking.md create mode 100644 src/dapps/xDex/simpleSwaps.md create mode 100644 src/dapps/xDex/stablecoinHighway.md create mode 100644 src/dapps/xDex/xDex.md create mode 100644 src/diagrams/images/ultralight.png create mode 100644 src/diagrams/raw/ultralight.excalidraw diff --git a/src/SUMMARY.md b/src/SUMMARY.md index f5e1cd8..88ada1e 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -15,7 +15,7 @@ - [Advantages of xDapps](./dapps/5_advantages.md) - [Wormhole](./wormhole/0_wormholeOverview.md) - + - [What is Wormhole?](./wormhole/1_whatIsWormhole.md) - [Architecture Overview](./wormhole/2_architectureOverview.md) - [Core Layer Contracts](./wormhole/3_coreLayerContracts.md) @@ -25,6 +25,14 @@ - [Portal xAsset Bridge](./wormhole/7_portalTokenBridge.md) - [Wormchain](./wormhole/8_wormchain.md) +- [xDapp Design](./dapps/architecture/0_dappDesign.md) + + - [Key Considerations](./dapps/architecture/1_keyConsiderations.md) + - [Ecosystems](./dapps/architecture/2_ecosystems.md) + - [Protocol Design](./dapps/architecture/3_protocolDesign.md) + - [Topology](./dapps/architecture/4_topology.md) + - [Relayers](./dapps/architecture/5_relayers.md) + --- # xDapp Development @@ -47,8 +55,8 @@ - [Receving Messages](./development/messages/receiving/overview.md) - [EVM](./development/messages/receiving/evm.md) - [Projects](./projects/summary.md) - - [EVM Messenger](./projects/evm-messenger/overview.md) - - [Solidity](./projects/evm-messenger/messenger.md) + - [EVM Messenger](./projects/evm-messenger/overview.md) + - [Solidity](./projects/evm-messenger/messenger.md) - [JS Client](./projects/evm-messenger/client.md) - [Messenger](./projects/messenger/introduction.md) - [Prerequistes]() diff --git a/src/dapps/architecture/0_dappDesign.md b/src/dapps/architecture/0_dappDesign.md index e69de29..c5d1b73 100644 --- a/src/dapps/architecture/0_dappDesign.md +++ b/src/dapps/architecture/0_dappDesign.md @@ -0,0 +1,5 @@ +# xDapp Design + +Now that we've established the concepts underlying xDapps and the major components, let's dive into the design process surrounding xDapps. This chapter will help guide you through the considerations you should make before developing an xDapp, including topics like security, network topology, protocol design and more. + +By the end of this chapter, you should have all the tools you need to lay out a design for your xDapp and start building. diff --git a/src/dapps/architecture/1_keyConsiderations.md b/src/dapps/architecture/1_keyConsiderations.md index e69de29..7a14cea 100644 --- a/src/dapps/architecture/1_keyConsiderations.md +++ b/src/dapps/architecture/1_keyConsiderations.md @@ -0,0 +1,19 @@ +# Key Considerations + +Before we get started, we should outline the key considerations which will shape your xDapp. Over the course of the chapter, we'll elaborate on how decisions made about these key points impact the way you may want to structure your application as a whole. + +### Why? + +Why you are building an xDapp is definitely the foremost consideration. In the first chapter, we went over the [advantages](../5_advantages.md) of cross-chain development. Which of these advantages are most important to you? Are you building a brand new application and you want the widest reach? Are you trying to increase the performance of an existing Dapp? Are you interested in composing on top of protocols which only exist in certain ecosystems? Deciding what your key priorities are will help you make the correct technical decisions and tradeoffs when designing your xDapp. + +### Target Ecosystems & Languages + +A major consideration is which blockchains you intend to support. Because blockchains utilize different virtual machines, supporting more blockchains often (but not always) requires writing smart contracts in more than one language. + +### Data Flows + +Where does your data originate from and where does it have to go? Does all your data come from user-initiated transactions? Do you have governance messages which need to be emitted from a central governance location? Do you have automated actions which need to happen periodically to synchronize your data? + +### Liquidity & Tokens + +Not all xDapps deal with tokens, but certainly quite a few do. If your app is centered around tokens, you'll have to decide what tokens will be utilized, where liquidity is aggregated (or fractured), and how this liquidity can be best utilized across your application. diff --git a/src/dapps/architecture/2_ecosystems.md b/src/dapps/architecture/2_ecosystems.md index e69de29..8f73bce 100644 --- a/src/dapps/architecture/2_ecosystems.md +++ b/src/dapps/architecture/2_ecosystems.md @@ -0,0 +1,32 @@ +# Ecosystems + +At present, there are 3 ecosystems supported by Wormhole, though the number of ecosystems supported is always growing. + +### EVM + +EVM is the most popular ecosystem, and most xDapps will have some support for this platform. These contracts are written in Solidity, and are generally a 'jack of all trades' type of computation environment. A common strategy for xDapps is to develop one single contract in Solidity, and then deploy that contract to all the supported EVM blockchains. + +Example chains: + + - Ethereum + - Polygon + - BNB Chain + - Avalanche (C Chain) + - Aurora (Near Network) + - Karura (Polkadot Network) + - Acala (Polkadot Network) + - Celo + - Fantom + - Oasis (Emerald) + +### Solana + +Solana is characterized by its high transaction throughput, increased computation power, and cheap data storage when compared to EVM environments. These contracts are written in Rust. + +### Cosmos + +Cosmos is a network of blockchains which share a common ecosystem. Cosmos is a general purpose environment, but excels in certain areas such as application-specific blockchains, and having Cosmos-wide standards via its sdk 'modules'. It uses CosmWasm for its smart contract runtime, which is based in Rust. + +### Read-Only Chains + +Some chains in the Wormhole ecosystem are 'Read-Only'. These chains are able to verify messages which are emitted from other chains in the network, but are not able to emit messages themselves. For information about these chains, check the [contracts page](../../reference/contracts.md). diff --git a/src/dapps/architecture/3_protocolDesign.md b/src/dapps/architecture/3_protocolDesign.md index e69de29..0cc6864 100644 --- a/src/dapps/architecture/3_protocolDesign.md +++ b/src/dapps/architecture/3_protocolDesign.md @@ -0,0 +1,31 @@ +# Protocol Design + +Wormhole's key feature is that it brings message passing to the world of blockchain. As such, it's worthwhile to take some inspiration from other areas of software development which are based on similar principles. + +Much of the traditional web stack is based on distributed systems, which rely on message passing to create well-defined interfaces and boundaries for disparate systems to work together. We should similarly think of xDapps as web3 distributed systems based on similar paradigms. + +## Protocol First Design + +Protocol first design is a design philosophy where you first lay out your data types, message formats, and supported operations into a well-defined protocol. This creates a solid protocol layer which can serve as the foundation for your application, and the code instantiating that protocol can be treated as an implementation detail when reasoning about the protocol itself. + +At this stage in the design, you should first consider the incentive structures surrounding your protocol. What is the incentive for each party to engage? Are there economic attack vectors in your application which might jeopardize its security? Do certain market conditions result in perverse outcomes? This stage of the process could be as simple as stating "people will want my NFT", or as difficult as designing an entire ecosystem with multiple competing interests. It depends on what your goals are. + +Once you have a clear idea of your core product, incentives, and users, you can begin to lay out your data model, and from there define your message types and operations. + +## Common Strategies and Conventions + +### Address Space + +Because there are many different formats for addresses across the ecosystem, a compatibility format is necessary. Wormhole uses its own address format (generally referred to as Wormhole format) in order to solve this issue. These addresses correspond 1 to 1 with native addresses on each chain. + +A Wormhole address consists of a tuple containing the 2 byte Wormhole chain ID, and also a 32 byte shim address. The Wormhole address format is then 34 bytes. + +For example, because EVM addresses are only 20 bytes in length, to convert this to a Wormhole address, the address is left-padded with zeros until it's length 32. + +When dealing with addresses inside your messages, it's recommended to always convert to Wormhole format and transmit in that format. Primarily because you will regularly encounter these addresses when interacting with parts of the Wormhole ecosystem, but also because it will enhance your forward compatibility as you add more chains to your protocol. + +### Trusted Contract Network + +If your application has smart contracts deployed to multipe chains, it will be important for your contracts to know which other contracts are 'in network' for your application, as commonly the first check performed when receiving a message is to validate that it originates from a trusted contract. + +Generally, this list of trusted contracts is stored in the state of each contract individually, and updating the trusted contracts is tied into the governance mechanism of the application. diff --git a/src/dapps/architecture/4_topology.md b/src/dapps/architecture/4_topology.md index e69de29..ea186f0 100644 --- a/src/dapps/architecture/4_topology.md +++ b/src/dapps/architecture/4_topology.md @@ -0,0 +1,69 @@ +# Topology + +Topology describes how data flows through your application, and the responsibilities of each component. The primary decision to be made with regard to topology is mainly where your smart contracts will live, and what responsibilities each contract holds. + +## Ultra-light Clients + +![Ultra-light client](../../diagrams/images/ultralight.png "Ultra Light Clients") + +Ultra-light Clients are often the best option when designing an MVP for your xDapp. The defining feature of an Ultra-light Client is that you are able to support users from every chain in the Wormhole ecosystem while **only having smart contracts on a single chain (!!!)**. + +The way this works is by deploying a single _hub_ contract (or just using an existing Dapp). You then add an entrypoint which supports _contract controlled transfers_ from the Asset Layer to send tokens to your hub contract, along with instructions for what to do with the tokens. Once you've performed the necessary operation, you bridge the resultant tokens back to the wallet which originally sent the CCT. The only on-chain components is the relatively lightweight wrapper around the core Dapp logic. All other aspects of this topology are off-chain and untrusted. This pushes most of the development work out of smart contracts and into client-side typescript, without altering the trust assumptions of your application. + +**_Advantages:_** + +- Very little added smart contract risk. +- Simple to develop. +- Easiest way to get heterogenous ecosystem support. + +**_Disadvantages:_** + +- Latency: Because all transactions have to bridge in and out of the hub chain, each transaction incurs the finality latency of both the remote and hub chain. +- Transaction Fees: There are always a grand total of three transactions. Two on the remote chain, and one on the hub chain. +- Use cases: There is no place to perform trusted computation on the remote chain, so some use cases are more difficult to implement (or potentially not possible). + +## Hub and Spoke + +Hub and Spoke models are somewhat of a natural evolution of the ultra-light client. There is still a hub contract which handles all transactions, but there is not also a contract deployed to the remote chain. + +Advantages: + +- Remote contracts are lightweight and don't carry huge amounts of risk. +- Can perform trusted checks on the remote chain. (Such as validating wallet balance) + +Disadvantages: + +- Latency (same as Ultra Lightweight Clients) - Transaction Fees: - Managing multiple contracts + +## Mesh + +A Mesh topology is one where each chain implements the full logic for a process, such that each contract is a peer of other contracts in the trusted network and can act autonomously. + +Advantages: + +- Latency: Users can perform their operation without waiting for other chains. +- Transaction Fees: Does not stack the transaction fees of multiple chains. + +Disadvantages: + +- Complexity: there are now quite a few contracts to manage, especially if they are implemented multiple times across different VMs. +- Data desync: because each blockchain acts independently, each chain will have independent state. This can open up unwanted arbitrage opportunities and other discontinuities. +- Race conditions: In cases where an event is supposed to propage through the entire system at a fixed time (example: closing a governance vote), it will be difficult to synchronize all the blockchains. + +## Distributed + +A distributed topology is one where different blockchains have different responsibilities. + +Advantages: + +- Power: utilize each blockchain for whatever is most optimal. + +Disadvantages: + +- Complexity: requires multiple specialized smart contracts, and potentially additional on-chain processes. + +## Mix & Match + +Different use cases have different optimal topologies, and it's possible to use different topologies for different workflows in your application. This means your should not feel 'locked in' to a single topology, and should instead consider designing each workflow independently. For example, Governance is generally best implemented using a Hub and Spoke topology, even if the rest of your application uses a Mesh architecture. As such, your contracts will likely evolve over time as your xDapp evolves and adds in additional workflows. + +You can also progress through different topologies. A common strategy is to start off with an ultra-light client, move to a hub and spoke configuration, and then add optimizations and specialties to your contracts as the need arises. diff --git a/src/dapps/architecture/5_relayers.md b/src/dapps/architecture/5_relayers.md index e69de29..99b5a99 100644 --- a/src/dapps/architecture/5_relayers.md +++ b/src/dapps/architecture/5_relayers.md @@ -0,0 +1,69 @@ +# Relayers + +In Chapter 2, we discussed the [general concepts associated with relayers in the Wormhole ecosystem](../../wormhole/6_relayers.md). In this section, the primary focus is to outline what considerations need to be taken into account when designing relayers in your application. + +## Fundamentals + +The most important thing to remember about relayers is that they are _untrusted_. This means you don't have to trust them, but it also means you can't trust them. This is true of both generic and specialized relayers. + +Let's dive into a little bit more detail about _why_ relayers are untrusted, and what this means for you when laying out a protocol. + +A few key properties of VAAs are that they: + +- are publicly emitted from the Guardian Network + +- need to be signed by the Guardian Network to be considered authentic + +- can be verified as authentic by _any_ Wormhole Core Contract they are brought to _by anyone_. + +Relayers are untrusted as an inherent consequence of these properties. Anyone can pick up a VAA and deliver it anywhere they feel like, however, no one can alter the content of the VAA without invalidating the signatures. + +So, when writing your contracts, it's incredibly important to only trust information _inside your contract_ or _inside of VAA content_. If you trust information provided by a relayer, you are opening yourself up to untrusted input attacks. + +The easiest and most secure way to interact with relayers then is to _only accept the VAA as input_. If the relayer can't provide any additional args, then there's no way for them to provide untrusted input. + +There are more advanced strategies whereby the relayer performs **untrusted** off-chain computation which is passed into the destination contract. These strategies can optimize gas costs, but must be used carefully, as they can create attack vectors if not used correctly. + +Designing relayers is mostly a matter of structuring the messages in your protocol in a manner such that there is a single, deterministic way that they can be processed. Once you've designed your protocol, your relayers just need to be implemented correctly. Relayers are conceptually quite similar to "crank turner" processes used elsewhere in blockchain, in that there is only a single action which can be taken (pulling the crank), and their sole responsibility is to initiate this action and pay for the costs. + +--- + +## Generic Relayers + +Generic Relayers are a decentralized relayer network which can deliver arbitrary VAAs, so long as the recipient contract is conformant with the generic relayer API. + +### Advantages: + +- Purely done on-chain. No need to host or maintain relayers + +### Disadvantages: + +- Less room for optimization via features like conditional delivery, batching, off-chain calculations, etc. + +--- + +## Specialized Relayers + +Specialized Relayers are relayers which are purpose-built to relay messages for a certain application. + +### Advantages: + +- Can perform off-chain untrusted computation +- Highly customizeable. Can perform batching, conditional delivery, multi-chain deliveries, etc. +- Can home-roll an incentive structure + +### Disadvantages + +- Requires development work, and requires that someone continuously run these. + +In the future, there may be ways to customize generic relayers such that they will gain the advantages of today's specialized relayers. + +### Relayer Incentives + +Relayers have to cover the costs of executing the downstream transactions resulting from the original 'source' transaction. Unless the relayers are running at a loss, there must be a mechanism for reimbursing the relayer in exchange for message delivery. + +There are tons of strategies here, and the 'best' strategy for an application is often dependent on the specifics of that application. However, a few of the most common strategies are: + +- pay the relayer with a potion of the tokens being sent cross-chain +- collect a safe amount of gas money from the end user prior to performing any actions +- 'lazy' relaying, where relaying might only become profitable in certain, potentially rare, market conditions diff --git a/src/dapps/xDex/designOverview.md b/src/dapps/xDex/designOverview.md new file mode 100644 index 0000000..e69de29 diff --git a/src/dapps/xDex/governance.md b/src/dapps/xDex/governance.md new file mode 100644 index 0000000..e69de29 diff --git a/src/dapps/xDex/remoteStaking.md b/src/dapps/xDex/remoteStaking.md new file mode 100644 index 0000000..e69de29 diff --git a/src/dapps/xDex/simpleSwaps.md b/src/dapps/xDex/simpleSwaps.md new file mode 100644 index 0000000..e69de29 diff --git a/src/dapps/xDex/stablecoinHighway.md b/src/dapps/xDex/stablecoinHighway.md new file mode 100644 index 0000000..e69de29 diff --git a/src/dapps/xDex/xDex.md b/src/dapps/xDex/xDex.md new file mode 100644 index 0000000..f0b4b6c --- /dev/null +++ b/src/dapps/xDex/xDex.md @@ -0,0 +1,14 @@ +## Example: xDex + + - Why: The goal of xDex is to make the world's best dex. We want to support users from every chain, we want to support every asset those users could want, and we want this dex to be managed by on-chain governance. + + - Target Ecosystems: We want to support wallet users from every blockchain which has full Wormhole support, but we are less concerned about smart contract developers being able to compose on top of us. + + - Data flows: There are three key data flows. Swaps, liquidity providing, and governance. + + - Liquidity & Tokens: We want to minimize liquidity fragmentation in order to support large swaps. We also want users from any chain to be able to vote in governance or provision liquidity. + +## Example: xDex + + - We needs to support users from all these ecosystems. + - We want to minimize our number of contracts so as to reduce implementation complexity and smart contract risk. diff --git a/src/diagrams/images/ultralight.png b/src/diagrams/images/ultralight.png new file mode 100644 index 0000000000000000000000000000000000000000..8b0d22deef856b530cb82c0651ff371649a84b2e GIT binary patch literal 73260 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 {}dWF{G^S#ssg@D?rjp=1$c2gxk+>n# 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 literal 0 HcmV?d00001 diff --git a/src/diagrams/raw/ultralight.excalidraw b/src/diagrams/raw/ultralight.excalidraw new file mode 100644 index 0000000..c68e319 --- /dev/null +++ b/src/diagrams/raw/ultralight.excalidraw @@ -0,0 +1,690 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "ellipse", + "version": 135, + "versionNonce": 768546443, + "isDeleted": false, + "id": "NbbbY9EVQfg7rd_afNpYY", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 470, + "y": 221.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 22, + "height": 21, + "seed": 1843991813, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1660658442824, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 224, + "versionNonce": 725330853, + "isDeleted": false, + "id": "Go0OxQVkX0X2m9jx5Bf_G", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1350, + "y": 221.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 22, + "height": 21, + "seed": 279079371, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1660658442824, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 148, + "versionNonce": 2019691819, + "isDeleted": false, + "id": "PqxENRNqTpvPnZM8eQhpI", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 470, + "y": 961.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 22, + "height": 21, + "seed": 275393637, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1660658442824, + "link": null, + "locked": false + }, + { + "type": "ellipse", + "version": 150, + "versionNonce": 1081143045, + "isDeleted": false, + "id": "O8vOxifDk2VUYfbrsHAgD", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "angle": 0, + "x": 1350, + "y": 961.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 22, + "height": 21, + "seed": 602470507, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElements": [], + "updated": 1660658442824, + "link": null, + "locked": false + }, + { + "id": "7tycgTrlIwWUIYouO52v1", + "type": "rectangle", + "x": 531, + "y": 787, + "width": 440, + "height": 134, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 954648165, + "version": 68, + "versionNonce": 60365675, + "isDeleted": false, + "boundElements": [ + { + "id": "DQyXiYF_swzbHKTnJgWV0", + "type": "arrow" + } + ], + "updated": 1660658585285, + "link": null, + "locked": false + }, + { + "id": "vRXD9VfYpftfI3N7mn-Gd", + "type": "arrow", + "x": 601.7741878115013, + "y": 754.6497146422788, + "width": 1, + "height": 74, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 482841195, + "version": 43, + "versionNonce": 1693972971, + "isDeleted": false, + "boundElements": null, + "updated": 1660658572677, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 1, + -74 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "Lo7L-SSQitvDd0me0ArFk", + "type": "rectangle", + "x": 513, + "y": 334, + "width": 286, + "height": 301, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1384772389, + "version": 115, + "versionNonce": 2061579141, + "isDeleted": false, + "boundElements": null, + "updated": 1660658531328, + "link": null, + "locked": false + }, + { + "id": "ehq2knMV5F3_1e_PpVBWH", + "type": "rectangle", + "x": 1080, + "y": 340, + "width": 260, + "height": 320, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 94466891, + "version": 99, + "versionNonce": 775888619, + "isDeleted": false, + "boundElements": [ + { + "id": "rYB6hRqqfDm5aTJtLBGcS", + "type": "arrow" + }, + { + "id": "o0H-v8h1HGHciwOH0Ljyc", + "type": "arrow" + } + ], + "updated": 1660658578733, + "link": null, + "locked": false + }, + { + "id": "rYB6hRqqfDm5aTJtLBGcS", + "type": "arrow", + "x": 840, + "y": 360, + "width": 220, + "height": 0, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 2143940907, + "version": 22, + "versionNonce": 829343435, + "isDeleted": false, + "boundElements": null, + "updated": 1660658713005, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 220, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "ehq2knMV5F3_1e_PpVBWH", + "focus": 0.875, + "gap": 20 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "o0H-v8h1HGHciwOH0Ljyc", + "type": "arrow", + "x": 1060, + "y": 580, + "width": 220, + "height": 0, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1398244491, + "version": 20, + "versionNonce": 1994268517, + "isDeleted": false, + "boundElements": null, + "updated": 1660658713005, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + -220, + 0 + ] + ], + "lastCommittedPoint": null, + "startBinding": { + "elementId": "ehq2knMV5F3_1e_PpVBWH", + "focus": -0.5, + "gap": 20 + }, + "endBinding": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "DQyXiYF_swzbHKTnJgWV0", + "type": "arrow", + "x": 740, + "y": 680, + "width": 0, + "height": 80, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 955854661, + "version": 7, + "versionNonce": 1689213285, + "isDeleted": false, + "boundElements": null, + "updated": 1660658585285, + "link": null, + "locked": false, + "points": [ + [ + 0, + 0 + ], + [ + 0, + 80 + ] + ], + "lastCommittedPoint": null, + "startBinding": null, + "endBinding": { + "elementId": "7tycgTrlIwWUIYouO52v1", + "focus": -0.05, + "gap": 27 + }, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "id": "0COi-1znrSkFnzKLwa2nZ", + "type": "text", + "x": 860, + "y": 300, + "width": 169, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 361987243, + "version": 19, + "versionNonce": 633884555, + "isDeleted": false, + "boundElements": null, + "updated": 1660658661252, + "link": null, + "locked": false, + "text": "CCT (Payload 3)", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "CCT (Payload 3)" + }, + { + "id": "GOeo7bMI5UomjDs4gggUU", + "type": "text", + "x": 872, + "y": 609, + "width": 93, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 290042603, + "version": 29, + "versionNonce": 1372433323, + "isDeleted": false, + "boundElements": null, + "updated": 1660658609493, + "link": null, + "locked": false, + "text": "Payload 1", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Payload 1" + }, + { + "id": "PvGVhBQP8k0L9JKuOs4Qs", + "type": "text", + "x": 460, + "y": 680, + "width": 120, + "height": 75, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 126942443, + "version": 38, + "versionNonce": 1186306917, + "isDeleted": false, + "boundElements": null, + "updated": 1660658626284, + "link": null, + "locked": false, + "text": "Tokens\n+\nInstructions", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 68, + "containerId": null, + "originalText": "Tokens\n+\nInstructions" + }, + { + "id": "Qc7TUAJKX-dAauc2vxyko", + "type": "text", + "x": 766, + "y": 711, + "width": 69, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1995949605, + "version": 14, + "versionNonce": 390045291, + "isDeleted": false, + "boundElements": null, + "updated": 1660658633957, + "link": null, + "locked": false, + "text": "Tokens", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Tokens" + }, + { + "id": "c7gi0tTVTNV1URj8uCxlj", + "type": "text", + "x": 625, + "y": 838, + "width": 161, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 14913829, + "version": 29, + "versionNonce": 1740389477, + "isDeleted": false, + "boundElements": null, + "updated": 1660658644949, + "link": null, + "locked": false, + "text": "End User Wallet", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "End User Wallet" + }, + { + "id": "2Kb1vlwx5LQ5HECeVoTRv", + "type": "text", + "x": 560, + "y": 460, + "width": 194, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 853385995, + "version": 36, + "versionNonce": 1610184677, + "isDeleted": false, + "boundElements": null, + "updated": 1660658657935, + "link": null, + "locked": false, + "text": "Wormhole Contracts", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Wormhole Contracts" + }, + { + "id": "N4_9tSTbCy6viiNuYtIfb", + "type": "text", + "x": 600, + "y": 300, + "width": 131, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1253632197, + "version": 32, + "versionNonce": 252867915, + "isDeleted": false, + "boundElements": null, + "updated": 1660658695973, + "link": null, + "locked": false, + "text": "Remote Chain", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Remote Chain" + }, + { + "id": "yqZBl2AHX7eqNQCimd87q", + "type": "text", + "x": 1160, + "y": 300, + "width": 93, + "height": 25, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 467153989, + "version": 13, + "versionNonce": 1364173797, + "isDeleted": false, + "boundElements": null, + "updated": 1660658702071, + "link": null, + "locked": false, + "text": "Hub Chain", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 18, + "containerId": null, + "originalText": "Hub Chain" + }, + { + "id": "nuva4zhNpJpwgn-AzHsWQ", + "type": "text", + "x": 1160, + "y": 460, + "width": 89, + "height": 50, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "fillStyle": "hachure", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 1, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "round", + "seed": 1506304907, + "version": 35, + "versionNonce": 259197899, + "isDeleted": false, + "boundElements": null, + "updated": 1660658736208, + "link": null, + "locked": false, + "text": "Your \nContract", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 43, + "containerId": null, + "originalText": "Your \nContract" + } + ], + "appState": { + "gridSize": 20, + "viewBackgroundColor": "#ffffff" + }, + "files": {} +} \ No newline at end of file