From a148f2e99e33a1faeb5c62d28371844082c353af Mon Sep 17 00:00:00 2001 From: 0xlukem Date: Tue, 17 Jun 2025 19:04:31 -0300 Subject: [PATCH 1/6] fix 404, add description, fix 301 and 308 --- products/cctp-bridge/guides/cctp-contracts.md | 2 +- products/connect/concepts/routes.md | 2 +- products/connect/configuration/configuration-v0.md | 2 +- products/connect/configuration/data.md | 8 ++++---- products/connect/get-started.md | 2 +- products/connect/guides/hosted-version.md | 2 +- products/connect/reference/support-matrix.md | 2 +- products/messaging/guides/core-contracts.md | 2 +- products/messaging/tutorials/cross-chain-contracts.md | 4 ++-- .../messaging/tutorials/cross-chain-token-contracts.md | 2 +- products/multigov/faqs.md | 2 +- products/multigov/guides/deploy-to-evm.md | 2 +- products/native-token-transfers/get-started.md | 2 +- products/queries/reference/supported-methods.md | 2 +- products/settlement/get-started.md | 2 +- products/token-bridge/tutorials/multichain-token.md | 2 +- protocol/infrastructure/vaas.md | 2 +- tools/solidity-sdk/get-started.md | 6 +++--- tools/typescript-sdk/sdk-reference.md | 8 ++++---- 19 files changed, 28 insertions(+), 28 deletions(-) diff --git a/products/cctp-bridge/guides/cctp-contracts.md b/products/cctp-bridge/guides/cctp-contracts.md index b822560dd..3eaa4b749 100644 --- a/products/cctp-bridge/guides/cctp-contracts.md +++ b/products/cctp-bridge/guides/cctp-contracts.md @@ -30,7 +30,7 @@ The Circle Integration contract emits Wormhole messages with arbitrary payloads This contract can be found in [Wormhole's `wormhole-circle-integration` repository](https://github.com/wormhole-foundation/wormhole-circle-integration/){target=\_blank} on GitHub. !!! note - Wormhole supports all CCTP-supported chains, but Circle currently supports only a [handful of chains](https://developers.circle.com/stablecoins/docs/supported-domains){target=\_blank}. Please refer to the [CCTP section of the Contract Addresses](/docs/products/reference/contract-addresses/#cctp){target=\_blank} reference page to view the complete list of supported chains. + Wormhole supports all CCTP-supported chains, but Circle currently supports only a [handful of chains](https://developers.circle.com/stablecoins/supported-domains){target=\_blank}. Please refer to the [CCTP section of the Contract Addresses](/docs/products/reference/contract-addresses/#cctp){target=\_blank} reference page to view the complete list of supported chains. ??? code "Circle Integration contract" ```solidity diff --git a/products/connect/concepts/routes.md b/products/connect/concepts/routes.md index ef3139d16..d2f0189f3 100644 --- a/products/connect/concepts/routes.md +++ b/products/connect/concepts/routes.md @@ -26,7 +26,7 @@ Trustless relayers can execute the second transaction on the user's behalf, so t ## CCTP Routes (USDC) {: #cctp-routes-usdc} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. Note that if native USDC is transferred from the CCTP-enabled chains to any other outside of this list, the transfer will be routed through the Token Bridge, and the resulting asset will be a Wormhole-wrapped token instead of native USDC. diff --git a/products/connect/configuration/configuration-v0.md b/products/connect/configuration/configuration-v0.md index 01252978c..ebcd6cdc5 100644 --- a/products/connect/configuration/configuration-v0.md +++ b/products/connect/configuration/configuration-v0.md @@ -102,7 +102,7 @@ const config: WormholeConnectConfig = { The following section shows how to add an arbitrary token to your deployment of Connect. !!! note - You will need to [register](https://portalbridge.com/advanced-tools/#/register){target=\_blank} your token with the Token Bridge to get the contract addresses necessary for it to work with Connect. + You will need to [register](https://portalbridge.com/legacy-tools/#/register){target=\_blank} your token with the Token Bridge to get the contract addresses necessary for it to work with Connect. This example configuration limits Connect to the Solana and Ethereum networks and a handful of tokens, including `BSKT`, which isn't built in by default and provided under the `tokensConfig` key. diff --git a/products/connect/configuration/data.md b/products/connect/configuration/data.md index 736c5ead9..fd9c6a856 100644 --- a/products/connect/configuration/data.md +++ b/products/connect/configuration/data.md @@ -25,7 +25,7 @@ Configure Wormhole Connect by passing a `WormholeConnectConfig` object as the `c ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -100,7 +100,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. ```typescript --8<-- 'code/products/connect/configuration/data/add-token.tsx' @@ -110,8 +110,8 @@ See the [Connect source code](https://github.com/wormhole-foundation/wormhole-co Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. diff --git a/products/connect/get-started.md b/products/connect/get-started.md index 5425f5d27..d65c04768 100644 --- a/products/connect/get-started.md +++ b/products/connect/get-started.md @@ -52,7 +52,7 @@ Before you begin, make sure you have the following: npm start ``` -4. Open your browser to [localhost:3000](http://localhost:3000){target=\_blank} to view the application locally. It will look similar to the following: +4. Open your browser to `http://localhost:3000` to view the application locally. It will look similar to the following: ![Deployed Connect Widget](/docs/images/products/connect/tutorials/react-dapp/get-started/connect-get-started-01.webp) diff --git a/products/connect/guides/hosted-version.md b/products/connect/guides/hosted-version.md index e106271a8..6cf1796ac 100644 --- a/products/connect/guides/hosted-version.md +++ b/products/connect/guides/hosted-version.md @@ -1,6 +1,6 @@ --- title: Integrate Connect via CDN -description: +description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. categories: Connect, Transfer --- diff --git a/products/connect/reference/support-matrix.md b/products/connect/reference/support-matrix.md index 329f04d58..5eab538b4 100644 --- a/products/connect/reference/support-matrix.md +++ b/products/connect/reference/support-matrix.md @@ -56,7 +56,7 @@ This route appears if all of the following conditions are satisfied: ### Circle CCTP {: #circle-cctp} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. This route appears if all of the following conditions are satisfied: diff --git a/products/messaging/guides/core-contracts.md b/products/messaging/guides/core-contracts.md index 0ef3e6a29..15a5eb36d 100644 --- a/products/messaging/guides/core-contracts.md +++ b/products/messaging/guides/core-contracts.md @@ -169,7 +169,7 @@ To send a message, regardless of the environment or chain, the Core Contract is View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. diff --git a/products/messaging/tutorials/cross-chain-contracts.md b/products/messaging/tutorials/cross-chain-contracts.md index 72b8c90f7..c4cba44d5 100644 --- a/products/messaging/tutorials/cross-chain-contracts.md +++ b/products/messaging/tutorials/cross-chain-contracts.md @@ -30,7 +30,7 @@ Additionally, we'll rely on the Wormhole relayer to automatically determine cros Before starting this tutorial, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed on your machine -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} for deploying contracts +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} for deploying contracts - Testnet tokens for [Avalanche-Fuji](https://core.app/tools/testnet-faucet/?token=C){target=\_blank} and [Celo-Alfajores](https://faucet.celo.org/alfajores){target=\_blank} to cover gas fees - Wallet private key @@ -112,7 +112,7 @@ We use _Foundry_ to deploy our smart contracts. However, you can use any tool yo - [Remix](https://remix.ethereum.org/){target=\_blank} for a browser-based IDE - [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#installation){target=\_blank} for a more extensive JavaScript/TypeScript workflow - - [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} for a CLI-focused experience with built-in scripting and testing features + - [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} for a CLI-focused experience with built-in scripting and testing features The contracts and deployment steps remain the same regardless of your preferred tool. The key is to ensure you have the necessary Testnet funds and are deploying to the right networks. diff --git a/products/messaging/tutorials/cross-chain-token-contracts.md b/products/messaging/tutorials/cross-chain-token-contracts.md index 2eb4a9bba..c0392e72e 100644 --- a/products/messaging/tutorials/cross-chain-token-contracts.md +++ b/products/messaging/tutorials/cross-chain-token-contracts.md @@ -18,7 +18,7 @@ By the end of this tutorial, you'll have a working cross-chain token transfer sy Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed on your machine -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} for deploying contracts +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} for deploying contracts - Testnet tokens for [Avalanche-Fuji](https://core.app/tools/testnet-faucet/?token=C){target=\_blank} and [Celo-Alfajores](https://faucet.celo.org/alfajores){target=\_blank} to cover gas fees - [USDC Testnet](https://faucet.circle.com/){target=\_blank} tokens on Avalanche-Fuji or/and Celo-Alfajores for cross-chain transfer - Wallet private key diff --git a/products/multigov/faqs.md b/products/multigov/faqs.md index 1a8529f8e..160b058de 100644 --- a/products/multigov/faqs.md +++ b/products/multigov/faqs.md @@ -60,7 +60,7 @@ Tally will reach out to help get your DAO set up with MultiGov. To set up testing MultiGov for your DAO, you'll need: -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} and [Git](https://git-scm.com/downloads){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} and [Git](https://git-scm.com/downloads){target=\_blank} installed - Test ETH on the testnets you plan to use (e.g., Sepolia for hub, Optimism Sepolia for spoke) - Modify and deploy the hub and spoke contracts using the provided scripts - Set up the necessary environment variables and configurations diff --git a/products/multigov/guides/deploy-to-evm.md b/products/multigov/guides/deploy-to-evm.md index 4bdec947c..73ea5448b 100644 --- a/products/multigov/guides/deploy-to-evm.md +++ b/products/multigov/guides/deploy-to-evm.md @@ -14,7 +14,7 @@ Once your project is approved through the intake process and you’ve collaborat To interact with MultiGov, you'll need the following: -- Install [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} +- Install [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} - Install [Git](https://git-scm.com/downloads){target=\_blank} - Clone the repository: ```bash diff --git a/products/native-token-transfers/get-started.md b/products/native-token-transfers/get-started.md index 3adfed3ce..26887f17a 100644 --- a/products/native-token-transfers/get-started.md +++ b/products/native-token-transfers/get-started.md @@ -28,7 +28,7 @@ To use NTT, you must have a token already deployed on the source and destination ???- interface "Deploy an ERC-20 Token on EVM" Use the [example NTT token repository](https://github.com/wormhole-foundation/example-ntt-token){target=\_blank} to deploy a basic ERC-20 token contract on testnet. - 1. **Install Foundry** - install the [Forge CLI](https://book.getfoundry.sh/getting-started/installation){target=\_blank} + 1. **Install Foundry** - install the [Forge CLI](https://getfoundry.sh/introduction/installation/){target=\_blank} 2. **Clone the repository** – fetch the example contract repository diff --git a/products/queries/reference/supported-methods.md b/products/queries/reference/supported-methods.md index 83ee1720c..e82dd17a1 100644 --- a/products/queries/reference/supported-methods.md +++ b/products/queries/reference/supported-methods.md @@ -50,6 +50,6 @@ The [`sol_account`](https://github.com/wormhole-foundation/wormhole/blob/main/wh ### sol_pda -The [`sol_pda`](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0013_ccq.md#solana_queries){target=\_blank} query reads data for one or more Solana [Program Derived Addresses](https://www.anchor-lang.com/docs/pdas){target=\_blank}. It streamlines the standard process of deriving a PDA and fetching its account data. +The [`sol_pda`](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0013_ccq.md#solana_queries){target=\_blank} query reads data for one or more Solana [Program Derived Addresses](https://www.anchor-lang.com/docs/basics/pda){target=\_blank}. It streamlines the standard process of deriving a PDA and fetching its account data. This is particularly useful for accessing multiple PDAs owned by a specific program or for verifying Solana PDA derivations on another blockchain, such as how associated token accounts are all derived from the [Associated Token Account Program](https://spl.solana.com/associated-token-account){target=\_blank}. \ No newline at end of file diff --git a/products/settlement/get-started.md b/products/settlement/get-started.md index e998c8df7..4e40becd6 100644 --- a/products/settlement/get-started.md +++ b/products/settlement/get-started.md @@ -58,7 +58,7 @@ Start by scaffolding a basic Node.js project and installing the required SDKs. touch src/helpers.ts src/swap.ts .env .gitignore ``` -4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://book.getfoundry.sh/reference/cast/cast-wallet/){target=_blank}. +4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://getfoundry.sh/cast/reference/cast-wallet){target=_blank}. !!! warning If you use a .env file during development, add it to your .gitignore to exclude it from version control. Never commit private keys or mnemonics to your repository. diff --git a/products/token-bridge/tutorials/multichain-token.md b/products/token-bridge/tutorials/multichain-token.md index 3efdb309e..99e488430 100644 --- a/products/token-bridge/tutorials/multichain-token.md +++ b/products/token-bridge/tutorials/multichain-token.md @@ -23,7 +23,7 @@ Let’s begin with a straightforward, step-by-step process for creating a multic The first step in creating a multichain token is registering your token on its source chain. This ensures the token is prepared for bridging across blockchains. Follow these steps: -1. Open the [Portal Bridge](https://portalbridge.com/advanced-tools/#/register){target=\_blank} +1. Open the [Portal Bridge](https://portalbridge.com/legacy-tools/#/register){target=\_blank} 2. Select the blockchain where your token is currently deployed (source chain) 3. Connect your wallet by following the on-screen instructions 4. Locate the **Asset** field and paste the token contract address diff --git a/protocol/infrastructure/vaas.md b/protocol/infrastructure/vaas.md index f59317e95..2a05ec7c5 100644 --- a/protocol/infrastructure/vaas.md +++ b/protocol/infrastructure/vaas.md @@ -65,7 +65,7 @@ The body of the VAA is hashed twice with `keccak256` to produce the signed diges !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/tools/solidity-sdk/get-started.md b/tools/solidity-sdk/get-started.md index 43da1bf9f..c3ee36ff0 100644 --- a/tools/solidity-sdk/get-started.md +++ b/tools/solidity-sdk/get-started.md @@ -10,7 +10,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -54,7 +54,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -127,7 +127,7 @@ Follow these steps to create and deploy your sender and receiver Solidity contra npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: --8<-- "code/tools/solidity-sdk/get-started/terminal-output-01.html" diff --git a/tools/typescript-sdk/sdk-reference.md b/tools/typescript-sdk/sdk-reference.md index 262d09771..a7d260645 100644 --- a/tools/typescript-sdk/sdk-reference.md +++ b/tools/typescript-sdk/sdk-reference.md @@ -37,7 +37,7 @@ This page covers all you need to know about the functionality offered through th !!! warning - This package is a work in progress. The interface may change, and there are likely bugs. Please [report any issues](https://github.com/wormhole-foundation/connect-sdk/issues){target=\_blank} you find. + This package is a work in progress. The interface may change, and there are likely bugs. Please [report any issues](https://github.com/wormhole-foundation/wormhole-sdk-ts/issues){target=\_blank} you find. ## Concepts @@ -110,7 +110,7 @@ The SDK's `Signer` interface can be implemented as either a `SignOnlySigner` or #### Set Up a Signer with Ethers.js -To sign transactions programmatically with the Wormhole SDK, you can use [Ethers.js](https://docs.ethers.org/){target=\_blank} to manage private keys and handle signing. Here's an example of setting up a signer using Ethers.js: +To sign transactions programmatically with the Wormhole SDK, you can use [Ethers.js](https://docs.ethers.org/v6/){target=\_blank} to manage private keys and handle signing. Here's an example of setting up a signer using Ethers.js: ```javascript --8<-- 'code/tools/typescript-sdk/sdk-reference/ethers.js' @@ -218,11 +218,11 @@ Internally, this uses the [`TokenBridge`](#token-bridge) protocol client to tran ### Native USDC Transfers -You can transfer native USDC using [Circle's CCTP](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank}. If the transfer is set to `automatic`, the quote will include a relay fee, which is deducted from the total amount sent. For example, to receive 1.0 USDC on the destination chain, the sender must cover both the 1.0 and the relay fee. The same applies when including a native gas drop-off. +You can transfer native USDC using [Circle's CCTP](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank}. If the transfer is set to `automatic`, the quote will include a relay fee, which is deducted from the total amount sent. For example, to receive 1.0 USDC on the destination chain, the sender must cover both the 1.0 and the relay fee. The same applies when including a native gas drop-off. In the example below, the `wh.circleTransfer` function is used to initiate the transfer. It accepts the amount (in base units), sender and receiver chains and addresses, and an optional automatic flag to enable hands-free completion. You can also include an optional payload (set to `undefined` here) and specify a native gas drop-off if desired. -When waiting for the VAA, a timeout of `60,000` milliseconds is used. The actual wait time [varies by network](https://developers.circle.com/stablecoins/docs/required-block-confirmations#mainnet){target=\_blank}. +When waiting for the VAA, a timeout of `60,000` milliseconds is used. The actual wait time [varies by network](https://developers.circle.com/stablecoins/required-block-confirmations#mainnet){target=\_blank}. ```ts --8<-- 'code/tools/typescript-sdk/sdk-reference/cctp.ts:69:112' From 533f32afa313f6c493522cfeeb78aeec73679822 Mon Sep 17 00:00:00 2001 From: 0xlukem Date: Tue, 17 Jun 2025 19:13:39 -0300 Subject: [PATCH 2/6] llms --- llms-files/llms-basics.txt | 10 +++--- llms-files/llms-connect.txt | 26 +++++++------- llms-files/llms-multigov.txt | 14 ++++---- llms-files/llms-ntt.txt | 12 +++---- llms-files/llms-queries.txt | 12 +++---- llms-files/llms-relayers.txt | 10 +++--- llms-files/llms-settlement.txt | 12 +++---- llms-files/llms-solidity-sdk.txt | 16 ++++----- llms-files/llms-token-bridge.txt | 10 +++--- llms-files/llms-transfer.txt | 32 ++++++++--------- llms-files/llms-typescript-sdk.txt | 18 +++++----- llms-full.txt | 56 +++++++++++++++--------------- llms.txt | 2 +- 13 files changed, 115 insertions(+), 115 deletions(-) diff --git a/llms-files/llms-basics.txt b/llms-files/llms-basics.txt index f116e8e9f..778761bb0 100644 --- a/llms-files/llms-basics.txt +++ b/llms-files/llms-basics.txt @@ -550,7 +550,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -1758,7 +1758,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -2111,7 +2111,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -2155,7 +2155,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -2470,7 +2470,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-connect.txt b/llms-files/llms-connect.txt index d7afda876..2ab50185f 100644 --- a/llms-files/llms-connect.txt +++ b/llms-files/llms-connect.txt @@ -245,7 +245,7 @@ Trustless relayers can execute the second transaction on the user's behalf, so t ## CCTP Routes (USDC) {: #cctp-routes-usdc} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. Note that if native USDC is transferred from the CCTP-enabled chains to any other outside of this list, the transfer will be routed through the Token Bridge, and the resulting asset will be a Wormhole-wrapped token instead of native USDC. @@ -356,7 +356,7 @@ wormholeConnectHosted(container, { ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -483,7 +483,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. ```typescript import WormholeConnect, { @@ -517,8 +517,8 @@ const config: WormholeConnectConfig = { Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. @@ -911,7 +911,7 @@ Before you begin, make sure you have the following: npm start ``` -4. Open your browser to [localhost:3000](http://localhost:3000){target=\_blank} to view the application locally. It will look similar to the following: +4. Open your browser to `http://localhost:3000` to view the application locally. It will look similar to the following: ![Deployed Connect Widget](/docs/images/products/connect/tutorials/react-dapp/get-started/connect-get-started-01.webp) @@ -978,7 +978,7 @@ Doc-Content: https://wormhole.com/docs/products/connect/guides/hosted-version/ --- BEGIN CONTENT --- --- title: Integrate Connect via CDN -description: +description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. categories: Connect, Transfer --- @@ -1745,7 +1745,7 @@ This route appears if all of the following conditions are satisfied: ### Circle CCTP {: #circle-cctp} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. This route appears if all of the following conditions are satisfied: @@ -2311,7 +2311,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -3519,7 +3519,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -3872,7 +3872,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -3916,7 +3916,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -4231,7 +4231,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-multigov.txt b/llms-files/llms-multigov.txt index 4435bb877..fc6225824 100644 --- a/llms-files/llms-multigov.txt +++ b/llms-files/llms-multigov.txt @@ -445,7 +445,7 @@ Tally will reach out to help get your DAO set up with MultiGov. To set up testing MultiGov for your DAO, you'll need: -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} and [Git](https://git-scm.com/downloads){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} and [Git](https://git-scm.com/downloads){target=\_blank} installed - Test ETH on the testnets you plan to use (e.g., Sepolia for hub, Optimism Sepolia for spoke) - Modify and deploy the hub and spoke contracts using the provided scripts - Set up the necessary environment variables and configurations @@ -553,7 +553,7 @@ Once your project is approved through the intake process and you’ve collaborat To interact with MultiGov, you'll need the following: -- Install [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} +- Install [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} - Install [Git](https://git-scm.com/downloads){target=\_blank} - Clone the repository: ```bash @@ -1571,7 +1571,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2779,7 +2779,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -3132,7 +3132,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -3176,7 +3176,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -3491,7 +3491,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-ntt.txt b/llms-files/llms-ntt.txt index 26d298285..80127cc01 100644 --- a/llms-files/llms-ntt.txt +++ b/llms-files/llms-ntt.txt @@ -524,7 +524,7 @@ To use NTT, you must have a token already deployed on the source and destination ???- interface "Deploy an ERC-20 Token on EVM" Use the [example NTT token repository](https://github.com/wormhole-foundation/example-ntt-token){target=\_blank} to deploy a basic ERC-20 token contract on testnet. - 1. **Install Foundry** - install the [Forge CLI](https://book.getfoundry.sh/getting-started/installation){target=\_blank} + 1. **Install Foundry** - install the [Forge CLI](https://getfoundry.sh/introduction/installation/){target=\_blank} 2. **Clone the repository** – fetch the example contract repository @@ -2571,7 +2571,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -3779,7 +3779,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -4132,7 +4132,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -4176,7 +4176,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -4491,7 +4491,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-queries.txt b/llms-files/llms-queries.txt index a8f699cd4..fa334980e 100644 --- a/llms-files/llms-queries.txt +++ b/llms-files/llms-queries.txt @@ -753,7 +753,7 @@ The [`sol_account`](https://github.com/wormhole-foundation/wormhole/blob/main/wh ### sol_pda -The [`sol_pda`](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0013_ccq.md#solana_queries){target=\_blank} query reads data for one or more Solana [Program Derived Addresses](https://www.anchor-lang.com/docs/pdas){target=\_blank}. It streamlines the standard process of deriving a PDA and fetching its account data. +The [`sol_pda`](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0013_ccq.md#solana_queries){target=\_blank} query reads data for one or more Solana [Program Derived Addresses](https://www.anchor-lang.com/docs/basics/pda){target=\_blank}. It streamlines the standard process of deriving a PDA and fetching its account data. This is particularly useful for accessing multiple PDAs owned by a specific program or for verifying Solana PDA derivations on another blockchain, such as how associated token accounts are all derived from the [Associated Token Account Program](https://spl.solana.com/associated-token-account){target=\_blank}. --- END CONTENT --- @@ -1337,7 +1337,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2545,7 +2545,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -2898,7 +2898,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -2942,7 +2942,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -3257,7 +3257,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-relayers.txt b/llms-files/llms-relayers.txt index bcfbdda5e..6c7fbf36c 100644 --- a/llms-files/llms-relayers.txt +++ b/llms-files/llms-relayers.txt @@ -1090,7 +1090,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2298,7 +2298,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -2651,7 +2651,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -2695,7 +2695,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -3010,7 +3010,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-settlement.txt b/llms-files/llms-settlement.txt index 2d092bca6..08bad2d7b 100644 --- a/llms-files/llms-settlement.txt +++ b/llms-files/llms-settlement.txt @@ -213,7 +213,7 @@ Start by scaffolding a basic Node.js project and installing the required SDKs. touch src/helpers.ts src/swap.ts .env .gitignore ``` -4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://book.getfoundry.sh/reference/cast/cast-wallet/){target=_blank}. +4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://getfoundry.sh/cast/reference/cast-wallet){target=_blank}. !!! warning If you use a .env file during development, add it to your .gitignore to exclude it from version control. Never commit private keys or mnemonics to your repository. @@ -1043,7 +1043,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2251,7 +2251,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -2604,7 +2604,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -2648,7 +2648,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -2963,7 +2963,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-solidity-sdk.txt b/llms-files/llms-solidity-sdk.txt index 841c18d67..30cba47e6 100644 --- a/llms-files/llms-solidity-sdk.txt +++ b/llms-files/llms-solidity-sdk.txt @@ -921,7 +921,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -965,7 +965,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -1280,7 +1280,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts @@ -2143,7 +2143,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -3351,7 +3351,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -3704,7 +3704,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -3748,7 +3748,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -4063,7 +4063,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-token-bridge.txt b/llms-files/llms-token-bridge.txt index e82929d67..abd8cf1a2 100644 --- a/llms-files/llms-token-bridge.txt +++ b/llms-files/llms-token-bridge.txt @@ -1733,7 +1733,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2941,7 +2941,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -3294,7 +3294,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -3338,7 +3338,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -3653,7 +3653,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-transfer.txt b/llms-files/llms-transfer.txt index 2eb19a8ca..09e0a4749 100644 --- a/llms-files/llms-transfer.txt +++ b/llms-files/llms-transfer.txt @@ -493,7 +493,7 @@ The Circle Integration contract emits Wormhole messages with arbitrary payloads This contract can be found in [Wormhole's `wormhole-circle-integration` repository](https://github.com/wormhole-foundation/wormhole-circle-integration/){target=\_blank} on GitHub. !!! note - Wormhole supports all CCTP-supported chains, but Circle currently supports only a [handful of chains](https://developers.circle.com/stablecoins/docs/supported-domains){target=\_blank}. Please refer to the [CCTP section of the Contract Addresses](/docs/products/reference/contract-addresses/#cctp){target=\_blank} reference page to view the complete list of supported chains. + Wormhole supports all CCTP-supported chains, but Circle currently supports only a [handful of chains](https://developers.circle.com/stablecoins/supported-domains){target=\_blank}. Please refer to the [CCTP section of the Contract Addresses](/docs/products/reference/contract-addresses/#cctp){target=\_blank} reference page to view the complete list of supported chains. ??? code "Circle Integration contract" ```solidity @@ -3196,7 +3196,7 @@ Trustless relayers can execute the second transaction on the user's behalf, so t ## CCTP Routes (USDC) {: #cctp-routes-usdc} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. Note that if native USDC is transferred from the CCTP-enabled chains to any other outside of this list, the transfer will be routed through the Token Bridge, and the resulting asset will be a Wormhole-wrapped token instead of native USDC. @@ -3307,7 +3307,7 @@ wormholeConnectHosted(container, { ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -3434,7 +3434,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. ```typescript import WormholeConnect, { @@ -3468,8 +3468,8 @@ const config: WormholeConnectConfig = { Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. @@ -3862,7 +3862,7 @@ Before you begin, make sure you have the following: npm start ``` -4. Open your browser to [localhost:3000](http://localhost:3000){target=\_blank} to view the application locally. It will look similar to the following: +4. Open your browser to `http://localhost:3000` to view the application locally. It will look similar to the following: ![Deployed Connect Widget](/docs/images/products/connect/tutorials/react-dapp/get-started/connect-get-started-01.webp) @@ -3929,7 +3929,7 @@ Doc-Content: https://wormhole.com/docs/products/connect/guides/hosted-version/ --- BEGIN CONTENT --- --- title: Integrate Connect via CDN -description: +description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. categories: Connect, Transfer --- @@ -4696,7 +4696,7 @@ This route appears if all of the following conditions are satisfied: ### Circle CCTP {: #circle-cctp} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. This route appears if all of the following conditions are satisfied: @@ -5217,7 +5217,7 @@ To use NTT, you must have a token already deployed on the source and destination ???- interface "Deploy an ERC-20 Token on EVM" Use the [example NTT token repository](https://github.com/wormhole-foundation/example-ntt-token){target=\_blank} to deploy a basic ERC-20 token contract on testnet. - 1. **Install Foundry** - install the [Forge CLI](https://book.getfoundry.sh/getting-started/installation){target=\_blank} + 1. **Install Foundry** - install the [Forge CLI](https://getfoundry.sh/introduction/installation/){target=\_blank} 2. **Clone the repository** – fetch the example contract repository @@ -6986,7 +6986,7 @@ Start by scaffolding a basic Node.js project and installing the required SDKs. touch src/helpers.ts src/swap.ts .env .gitignore ``` -4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://book.getfoundry.sh/reference/cast/cast-wallet/){target=_blank}. +4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://getfoundry.sh/cast/reference/cast-wallet){target=_blank}. !!! warning If you use a .env file during development, add it to your .gitignore to exclude it from version control. Never commit private keys or mnemonics to your repository. @@ -8414,7 +8414,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -9622,7 +9622,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -9975,7 +9975,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -10019,7 +10019,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -10334,7 +10334,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-files/llms-typescript-sdk.txt b/llms-files/llms-typescript-sdk.txt index 799700644..a779991d5 100644 --- a/llms-files/llms-typescript-sdk.txt +++ b/llms-files/llms-typescript-sdk.txt @@ -2761,7 +2761,7 @@ This page covers all you need to know about the functionality offered through th
!!! warning - This package is a work in progress. The interface may change, and there are likely bugs. Please [report any issues](https://github.com/wormhole-foundation/connect-sdk/issues){target=\_blank} you find. + This package is a work in progress. The interface may change, and there are likely bugs. Please [report any issues](https://github.com/wormhole-foundation/wormhole-sdk-ts/issues){target=\_blank} you find. ## Concepts @@ -2880,7 +2880,7 @@ export interface SignAndSendSigner { #### Set Up a Signer with Ethers.js -To sign transactions programmatically with the Wormhole SDK, you can use [Ethers.js](https://docs.ethers.org/){target=\_blank} to manage private keys and handle signing. Here's an example of setting up a signer using Ethers.js: +To sign transactions programmatically with the Wormhole SDK, you can use [Ethers.js](https://docs.ethers.org/v6/){target=\_blank} to manage private keys and handle signing. Here's an example of setting up a signer using Ethers.js: ```javascript import { ethers } from 'ethers'; @@ -3271,11 +3271,11 @@ Internally, this uses the [`TokenBridge`](#token-bridge) protocol client to tran ### Native USDC Transfers -You can transfer native USDC using [Circle's CCTP](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank}. If the transfer is set to `automatic`, the quote will include a relay fee, which is deducted from the total amount sent. For example, to receive 1.0 USDC on the destination chain, the sender must cover both the 1.0 and the relay fee. The same applies when including a native gas drop-off. +You can transfer native USDC using [Circle's CCTP](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank}. If the transfer is set to `automatic`, the quote will include a relay fee, which is deducted from the total amount sent. For example, to receive 1.0 USDC on the destination chain, the sender must cover both the 1.0 and the relay fee. The same applies when including a native gas drop-off. In the example below, the `wh.circleTransfer` function is used to initiate the transfer. It accepts the amount (in base units), sender and receiver chains and addresses, and an optional automatic flag to enable hands-free completion. You can also include an optional payload (set to `undefined` here) and specify a native gas drop-off if desired. -When waiting for the VAA, a timeout of `60,000` milliseconds is used. The actual wait time [varies by network](https://developers.circle.com/stablecoins/docs/required-block-confirmations#mainnet){target=\_blank}. +When waiting for the VAA, a timeout of `60,000` milliseconds is used. The actual wait time [varies by network](https://developers.circle.com/stablecoins/required-block-confirmations#mainnet){target=\_blank}. ```ts // Amount as bigint (base units) @@ -4384,7 +4384,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -5592,7 +5592,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -5945,7 +5945,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -5989,7 +5989,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -6304,7 +6304,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts diff --git a/llms-full.txt b/llms-full.txt index 1f7af2f22..131bf9367 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -389,7 +389,7 @@ The Circle Integration contract emits Wormhole messages with arbitrary payloads This contract can be found in [Wormhole's `wormhole-circle-integration` repository](https://github.com/wormhole-foundation/wormhole-circle-integration/){target=\_blank} on GitHub. !!! note - Wormhole supports all CCTP-supported chains, but Circle currently supports only a [handful of chains](https://developers.circle.com/stablecoins/docs/supported-domains){target=\_blank}. Please refer to the [CCTP section of the Contract Addresses](/docs/products/reference/contract-addresses/#cctp){target=\_blank} reference page to view the complete list of supported chains. + Wormhole supports all CCTP-supported chains, but Circle currently supports only a [handful of chains](https://developers.circle.com/stablecoins/supported-domains){target=\_blank}. Please refer to the [CCTP section of the Contract Addresses](/docs/products/reference/contract-addresses/#cctp){target=\_blank} reference page to view the complete list of supported chains. ??? code "Circle Integration contract" ```solidity @@ -3613,7 +3613,7 @@ Trustless relayers can execute the second transaction on the user's behalf, so t ## CCTP Routes (USDC) {: #cctp-routes-usdc} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. Wormhole Connect can facilitate such transfers. Note that if native USDC is transferred from the CCTP-enabled chains to any other outside of this list, the transfer will be routed through the Token Bridge, and the resulting asset will be a Wormhole-wrapped token instead of native USDC. @@ -4186,7 +4186,7 @@ const config: WormholeConnectConfig = { The following section shows how to add an arbitrary token to your deployment of Connect. !!! note - You will need to [register](https://portalbridge.com/advanced-tools/#/register){target=\_blank} your token with the Token Bridge to get the contract addresses necessary for it to work with Connect. + You will need to [register](https://portalbridge.com/legacy-tools/#/register){target=\_blank} your token with the Token Bridge to get the contract addresses necessary for it to work with Connect. This example configuration limits Connect to the Solana and Ethereum networks and a handful of tokens, including `BSKT`, which isn't built in by default and provided under the `tokensConfig` key. @@ -4455,7 +4455,7 @@ wormholeConnectHosted(container, { ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -4582,7 +4582,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/types.ts){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. ```typescript import WormholeConnect, { @@ -4616,8 +4616,8 @@ const config: WormholeConnectConfig = { Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. @@ -5010,7 +5010,7 @@ Before you begin, make sure you have the following: npm start ``` -4. Open your browser to [localhost:3000](http://localhost:3000){target=\_blank} to view the application locally. It will look similar to the following: +4. Open your browser to `http://localhost:3000` to view the application locally. It will look similar to the following: ![Deployed Connect Widget](/docs/images/products/connect/tutorials/react-dapp/get-started/connect-get-started-01.webp) @@ -5077,7 +5077,7 @@ Doc-Content: https://wormhole.com/docs/products/connect/guides/hosted-version/ --- BEGIN CONTENT --- --- title: Integrate Connect via CDN -description: +description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. categories: Connect, Transfer --- @@ -5844,7 +5844,7 @@ This route appears if all of the following conditions are satisfied: ### Circle CCTP {: #circle-cctp} -[Circle](https://www.circle.com/en/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank} chains. +[Circle](https://www.circle.com/){target=\_blank}, the issuer of USDC, provides a native way for native USDC to be transferred between [CCTP-enabled](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank} chains. This route appears if all of the following conditions are satisfied: @@ -6585,7 +6585,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.solana.com/developing/runtime-facilities/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -7050,7 +7050,7 @@ Additionally, we'll rely on the Wormhole relayer to automatically determine cros Before starting this tutorial, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed on your machine -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} for deploying contracts +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} for deploying contracts - Testnet tokens for [Avalanche-Fuji](https://core.app/tools/testnet-faucet/?token=C){target=\_blank} and [Celo-Alfajores](https://faucet.celo.org/alfajores){target=\_blank} to cover gas fees - Wallet private key @@ -7294,7 +7294,7 @@ We use _Foundry_ to deploy our smart contracts. However, you can use any tool yo - [Remix](https://remix.ethereum.org/){target=\_blank} for a browser-based IDE - [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started#installation){target=\_blank} for a more extensive JavaScript/TypeScript workflow - - [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} for a CLI-focused experience with built-in scripting and testing features + - [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} for a CLI-focused experience with built-in scripting and testing features The contracts and deployment steps remain the same regardless of your preferred tool. The key is to ensure you have the necessary Testnet funds and are deploying to the right networks. @@ -7962,7 +7962,7 @@ By the end of this tutorial, you'll have a working cross-chain token transfer sy Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed on your machine -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} for deploying contracts +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} for deploying contracts - Testnet tokens for [Avalanche-Fuji](https://core.app/tools/testnet-faucet/?token=C){target=\_blank} and [Celo-Alfajores](https://faucet.celo.org/alfajores){target=\_blank} to cover gas fees - [USDC Testnet](https://faucet.circle.com/){target=\_blank} tokens on Avalanche-Fuji or/and Celo-Alfajores for cross-chain transfer - Wallet private key @@ -10856,7 +10856,7 @@ Tally will reach out to help get your DAO set up with MultiGov. To set up testing MultiGov for your DAO, you'll need: -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} and [Git](https://git-scm.com/downloads){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} and [Git](https://git-scm.com/downloads){target=\_blank} installed - Test ETH on the testnets you plan to use (e.g., Sepolia for hub, Optimism Sepolia for spoke) - Modify and deploy the hub and spoke contracts using the provided scripts - Set up the necessary environment variables and configurations @@ -10964,7 +10964,7 @@ Once your project is approved through the intake process and you’ve collaborat To interact with MultiGov, you'll need the following: -- Install [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} +- Install [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} - Install [Git](https://git-scm.com/downloads){target=\_blank} - Clone the repository: ```bash @@ -12154,7 +12154,7 @@ To use NTT, you must have a token already deployed on the source and destination ???- interface "Deploy an ERC-20 Token on EVM" Use the [example NTT token repository](https://github.com/wormhole-foundation/example-ntt-token){target=\_blank} to deploy a basic ERC-20 token contract on testnet. - 1. **Install Foundry** - install the [Forge CLI](https://book.getfoundry.sh/getting-started/installation){target=\_blank} + 1. **Install Foundry** - install the [Forge CLI](https://getfoundry.sh/introduction/installation/){target=\_blank} 2. **Clone the repository** – fetch the example contract repository @@ -14461,7 +14461,7 @@ The [`sol_account`](https://github.com/wormhole-foundation/wormhole/blob/main/wh ### sol_pda -The [`sol_pda`](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0013_ccq.md#solana_queries){target=\_blank} query reads data for one or more Solana [Program Derived Addresses](https://www.anchor-lang.com/docs/pdas){target=\_blank}. It streamlines the standard process of deriving a PDA and fetching its account data. +The [`sol_pda`](https://github.com/wormhole-foundation/wormhole/blob/main/whitepapers/0013_ccq.md#solana_queries){target=\_blank} query reads data for one or more Solana [Program Derived Addresses](https://www.anchor-lang.com/docs/basics/pda){target=\_blank}. It streamlines the standard process of deriving a PDA and fetching its account data. This is particularly useful for accessing multiple PDAs owned by a specific program or for verifying Solana PDA derivations on another blockchain, such as how associated token accounts are all derived from the [Associated Token Account Program](https://spl.solana.com/associated-token-account){target=\_blank}. --- END CONTENT --- @@ -15683,7 +15683,7 @@ Start by scaffolding a basic Node.js project and installing the required SDKs. touch src/helpers.ts src/swap.ts .env .gitignore ``` -4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://book.getfoundry.sh/reference/cast/cast-wallet/){target=_blank}. +4. Set up secure access to your wallets. This guide assumes you are loading your `MAINNET_ETH_PRIVATE_KEY` and `MAINNET_SOL_PRIVATE_KEY` from a secure keystore of your choice, such as a secrets manager or a CLI-based tool like [cast wallet](https://getfoundry.sh/cast/reference/cast-wallet){target=_blank}. !!! warning If you use a .env file during development, add it to your .gitignore to exclude it from version control. Never commit private keys or mnemonics to your repository. @@ -17173,7 +17173,7 @@ Let’s begin with a straightforward, step-by-step process for creating a multic The first step in creating a multichain token is registering your token on its source chain. This ensures the token is prepared for bridging across blockchains. Follow these steps: -1. Open the [Portal Bridge](https://portalbridge.com/advanced-tools/#/register){target=\_blank} +1. Open the [Portal Bridge](https://portalbridge.com/legacy-tools/#/register){target=\_blank} 2. Select the blockchain where your token is currently deployed (source chain) 3. Connect your wallet by following the on-screen instructions 4. Locate the **Asset** field and paste the token contract address @@ -19100,7 +19100,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.solanalabs.com/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types @@ -20339,7 +20339,7 @@ The [Wormhole Solidity SDK](https://github.com/wormhole-foundation/wormhole-soli ## Install the SDK -Use Foundry's [`forge`](https://book.getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: +Use Foundry's [`forge`](https://getfoundry.sh/forge/){target=\_blank} to install the SDK using the following command: ```bash forge install wormhole-foundation/wormhole-solidity-sdk @@ -20383,7 +20383,7 @@ Before you begin, ensure you have the following: - [Node.js and npm](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm){target=\_blank} installed - [TypeScript](https://www.typescriptlang.org/download/){target=\_blank} installed -- [Foundry](https://book.getfoundry.sh/getting-started/installation){target=\_blank} installed +- [Foundry](https://getfoundry.sh/introduction/installation/){target=\_blank} installed - Testnet tokens for two supported chains. This example uses [testnet AVAX for Avalanche Fuji](https://core.app/tools/testnet-faucet/?subnet=c&token=c){target=\_blank} and [testnet CELO for Celo Alfajores](https://faucet.celo.org/alfajores){target=\_blank} and can be adapted to any supported chains - [USDC testnet tokens](https://faucet.circle.com/){target=\_blank} on your source chain for cross-chain transfer @@ -20698,7 +20698,7 @@ const SENDER_ABI_PATH = path.resolve( npx tsx script/transfer.ts ``` -4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-on-test-networks){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following: +4. Follow the prompts in the terminal. This example uses Avalanche Fuji as the source chain, Celo Testnet as the target, [Avalanche Fuji testnet USDC](https://developers.circle.com/stablecoins/usdc-contract-addresses#testnet){target=\_blank}, and a developer wallet as the recipient address. You will see terminal output similar to the following:
npx tsx script/transfer.ts @@ -22566,7 +22566,7 @@ This page covers all you need to know about the functionality offered through th
!!! warning - This package is a work in progress. The interface may change, and there are likely bugs. Please [report any issues](https://github.com/wormhole-foundation/connect-sdk/issues){target=\_blank} you find. + This package is a work in progress. The interface may change, and there are likely bugs. Please [report any issues](https://github.com/wormhole-foundation/wormhole-sdk-ts/issues){target=\_blank} you find. ## Concepts @@ -22685,7 +22685,7 @@ export interface SignAndSendSigner { #### Set Up a Signer with Ethers.js -To sign transactions programmatically with the Wormhole SDK, you can use [Ethers.js](https://docs.ethers.org/){target=\_blank} to manage private keys and handle signing. Here's an example of setting up a signer using Ethers.js: +To sign transactions programmatically with the Wormhole SDK, you can use [Ethers.js](https://docs.ethers.org/v6/){target=\_blank} to manage private keys and handle signing. Here's an example of setting up a signer using Ethers.js: ```javascript import { ethers } from 'ethers'; @@ -23076,11 +23076,11 @@ Internally, this uses the [`TokenBridge`](#token-bridge) protocol client to tran ### Native USDC Transfers -You can transfer native USDC using [Circle's CCTP](https://www.circle.com/en/cross-chain-transfer-protocol){target=\_blank}. If the transfer is set to `automatic`, the quote will include a relay fee, which is deducted from the total amount sent. For example, to receive 1.0 USDC on the destination chain, the sender must cover both the 1.0 and the relay fee. The same applies when including a native gas drop-off. +You can transfer native USDC using [Circle's CCTP](https://www.circle.com/cross-chain-transfer-protocol){target=\_blank}. If the transfer is set to `automatic`, the quote will include a relay fee, which is deducted from the total amount sent. For example, to receive 1.0 USDC on the destination chain, the sender must cover both the 1.0 and the relay fee. The same applies when including a native gas drop-off. In the example below, the `wh.circleTransfer` function is used to initiate the transfer. It accepts the amount (in base units), sender and receiver chains and addresses, and an optional automatic flag to enable hands-free completion. You can also include an optional payload (set to `undefined` here) and specify a native gas drop-off if desired. -When waiting for the VAA, a timeout of `60,000` milliseconds is used. The actual wait time [varies by network](https://developers.circle.com/stablecoins/docs/required-block-confirmations#mainnet){target=\_blank}. +When waiting for the VAA, a timeout of `60,000` milliseconds is used. The actual wait time [varies by network](https://developers.circle.com/stablecoins/required-block-confirmations#mainnet){target=\_blank}. ```ts // Amount as bigint (base units) diff --git a/llms.txt b/llms.txt index b96b1956f..78082a627 100644 --- a/llms.txt +++ b/llms.txt @@ -15,7 +15,7 @@ - [Connect Theme & UI Customization](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/configuration/theme.md): Learn how to style Wormhole Connect with custom color schemes, fonts, layouts, and menus for a streamlined user experience. - [Connect FAQs](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/faqs.md): Common questions and detailed answers about using Wormhole Connect, including supported assets, chains, customization, and integration options. - [Get Started with Connect](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/get-started.md): Follow this guide to configure and use the Connect UI widget to easily add an intuitive, multichain asset transfer UI to your web applications. -- [Integrate Connect via CDN](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/guides/hosted-version.md): None +- [Integrate Connect via CDN](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/guides/hosted-version.md): Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. - [Wormhole Connect v1.0 Migration Guide](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/guides/upgrade.md): Learn how to migrate to Wormhole Connect v1.0, with step-by-step guidance on updating your package and configuration. - [Wormhole Connect](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/overview.md): With Wormhole Connect, you can seamlessly bridge digital assets and data across a wide range of supported blockchain networks. - [Features](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/reference/support-matrix.md): Explore a comprehensive Feature Support matrix and explain Wormhole's capabilities across networks for Token Bridge, CCTP, ETH Bridge, and more. From b5627a2c89ed123820fdd55de8a3bf37d83ae904 Mon Sep 17 00:00:00 2001 From: 0xlukem Date: Wed, 18 Jun 2025 20:48:22 -0300 Subject: [PATCH 3/6] change links acording to feedback --- products/connect/configuration/data.md | 8 ++++---- products/messaging/guides/core-contracts.md | 2 +- protocol/infrastructure/vaas.md | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/products/connect/configuration/data.md b/products/connect/configuration/data.md index fd9c6a856..16dffcce1 100644 --- a/products/connect/configuration/data.md +++ b/products/connect/configuration/data.md @@ -25,7 +25,7 @@ Configure Wormhole Connect by passing a `WormholeConnectConfig` object as the `c ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -100,7 +100,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L182){target=\_blank} for the type definition of `TokensConfig`. ```typescript --8<-- 'code/products/connect/configuration/data/add-token.tsx' @@ -110,8 +110,8 @@ See the [Connect source code](https://github.com/wormhole-foundation/wormhole-co Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. diff --git a/products/messaging/guides/core-contracts.md b/products/messaging/guides/core-contracts.md index 15a5eb36d..e4176202c 100644 --- a/products/messaging/guides/core-contracts.md +++ b/products/messaging/guides/core-contracts.md @@ -169,7 +169,7 @@ To send a message, regardless of the environment or chain, the Core Contract is View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. diff --git a/protocol/infrastructure/vaas.md b/protocol/infrastructure/vaas.md index 2a05ec7c5..3e4ad8c9c 100644 --- a/protocol/infrastructure/vaas.md +++ b/protocol/infrastructure/vaas.md @@ -65,7 +65,7 @@ The body of the VAA is hashed twice with `keccak256` to produce the signed diges !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types From f6a8a35a43ecfa2fb10dfe2abba93e3295ba5b56 Mon Sep 17 00:00:00 2001 From: 0xlukem Date: Wed, 18 Jun 2025 20:48:40 -0300 Subject: [PATCH 4/6] llms --- llms-files/llms-basics.txt | 4 ++-- llms-files/llms-connect.txt | 12 ++++++------ llms-files/llms-multigov.txt | 4 ++-- llms-files/llms-ntt.txt | 4 ++-- llms-files/llms-queries.txt | 4 ++-- llms-files/llms-relayers.txt | 4 ++-- llms-files/llms-settlement.txt | 4 ++-- llms-files/llms-solidity-sdk.txt | 4 ++-- llms-files/llms-token-bridge.txt | 4 ++-- llms-files/llms-transfer.txt | 12 ++++++------ llms-files/llms-typescript-sdk.txt | 4 ++-- llms-full.txt | 12 ++++++------ 12 files changed, 36 insertions(+), 36 deletions(-) diff --git a/llms-files/llms-basics.txt b/llms-files/llms-basics.txt index 778761bb0..7c27770f4 100644 --- a/llms-files/llms-basics.txt +++ b/llms-files/llms-basics.txt @@ -550,7 +550,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -1758,7 +1758,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-connect.txt b/llms-files/llms-connect.txt index 2ab50185f..e61e06196 100644 --- a/llms-files/llms-connect.txt +++ b/llms-files/llms-connect.txt @@ -356,7 +356,7 @@ wormholeConnectHosted(container, { ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -483,7 +483,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L182){target=\_blank} for the type definition of `TokensConfig`. ```typescript import WormholeConnect, { @@ -517,8 +517,8 @@ const config: WormholeConnectConfig = { Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. @@ -2311,7 +2311,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -3519,7 +3519,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-multigov.txt b/llms-files/llms-multigov.txt index fc6225824..d13977c7c 100644 --- a/llms-files/llms-multigov.txt +++ b/llms-files/llms-multigov.txt @@ -1571,7 +1571,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2779,7 +2779,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-ntt.txt b/llms-files/llms-ntt.txt index 80127cc01..c094482f6 100644 --- a/llms-files/llms-ntt.txt +++ b/llms-files/llms-ntt.txt @@ -2571,7 +2571,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -3779,7 +3779,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-queries.txt b/llms-files/llms-queries.txt index fa334980e..9ec16b470 100644 --- a/llms-files/llms-queries.txt +++ b/llms-files/llms-queries.txt @@ -1337,7 +1337,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2545,7 +2545,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-relayers.txt b/llms-files/llms-relayers.txt index 6c7fbf36c..973035e3b 100644 --- a/llms-files/llms-relayers.txt +++ b/llms-files/llms-relayers.txt @@ -1090,7 +1090,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2298,7 +2298,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-settlement.txt b/llms-files/llms-settlement.txt index 08bad2d7b..eb1f852bd 100644 --- a/llms-files/llms-settlement.txt +++ b/llms-files/llms-settlement.txt @@ -1043,7 +1043,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2251,7 +2251,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-solidity-sdk.txt b/llms-files/llms-solidity-sdk.txt index 30cba47e6..0cced68e3 100644 --- a/llms-files/llms-solidity-sdk.txt +++ b/llms-files/llms-solidity-sdk.txt @@ -2143,7 +2143,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -3351,7 +3351,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-token-bridge.txt b/llms-files/llms-token-bridge.txt index abd8cf1a2..a829f87e2 100644 --- a/llms-files/llms-token-bridge.txt +++ b/llms-files/llms-token-bridge.txt @@ -1733,7 +1733,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -2941,7 +2941,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-transfer.txt b/llms-files/llms-transfer.txt index 09e0a4749..f1cb08118 100644 --- a/llms-files/llms-transfer.txt +++ b/llms-files/llms-transfer.txt @@ -3307,7 +3307,7 @@ wormholeConnectHosted(container, { ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -3434,7 +3434,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L182){target=\_blank} for the type definition of `TokensConfig`. ```typescript import WormholeConnect, { @@ -3468,8 +3468,8 @@ const config: WormholeConnectConfig = { Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. @@ -8414,7 +8414,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -9622,7 +9622,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-files/llms-typescript-sdk.txt b/llms-files/llms-typescript-sdk.txt index a779991d5..f65210046 100644 --- a/llms-files/llms-typescript-sdk.txt +++ b/llms-files/llms-typescript-sdk.txt @@ -4384,7 +4384,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -5592,7 +5592,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types diff --git a/llms-full.txt b/llms-full.txt index 131bf9367..c77b16b33 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -4455,7 +4455,7 @@ wormholeConnectHosted(container, { ``` !!! note - The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L96){target=\_blank}. + The complete type definition of `WormholeConnectConfig` is available in the [Wormhole Connect repository](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L96){target=\_blank}. ## Examples {: #examples } @@ -4582,7 +4582,7 @@ The following section shows how to add an arbitrary token to your deployment of This example configuration adds the BONK token to Connect. Note the `wrappedTokens` property, which is required for use with the Token Bridge. -See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/5d71533e1d0b326c601160f9fbb7c307e1871820/src/config/types.ts#L201){target=\_blank} for the type definition of `TokensConfig`. +See the [Connect source code](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/types.ts#L182){target=\_blank} for the type definition of `TokensConfig`. ```typescript import WormholeConnect, { @@ -4616,8 +4616,8 @@ const config: WormholeConnectConfig = { Connect offers a list of built-in tokens by default. You can see it below: -- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/mainnet/tokens.ts){target=\_blank} -- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/development/src/config/testnet/tokens.ts){target=\_blank} +- [Mainnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/mainnet/tokens.ts){target=\_blank} +- [Testnet tokens](https://github.com/wormhole-foundation/wormhole-connect/blob/production%403.0.0/wormhole-connect/src/config/testnet/tokens.ts){target=\_blank} You can customize the tokens shown in the UI using the `tokens` property. The following example adds a custom token and limits Connect to showing only that token, along with the native gas tokens ETH and SOL. @@ -6585,7 +6585,7 @@ wormhole::post_message( View the complete Hello World example in the [Wormhole Scaffolding](https://github.com/wormhole-foundation/wormhole-scaffolding/tree/main/solana/programs/01_hello_world){target=\_blank} repository on GitHub. -Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. +Once the message is emitted from the Core Contract, the [Guardian Network](/docs/protocol/infrastructure/guardians/){target=\_blank} will observe the message and sign the digest of an Attestation [VAA](/docs/protocol/infrastructure/vaas/){target=\_blank}. On EVM chains, the body of the VAA is hashed twice with keccak256 to produce the signed digest message. On Solana, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. VAAs are [multicast](/docs/protocol/infrastructure/core-contracts/#multicast){target=\_blank} by default. This means there is no default target chain for a given message. The application developer decides on the format of the message and its treatment upon receipt. @@ -19100,7 +19100,7 @@ signature = ecdsa_sign(digest, key) !!!tip "Hash vs. double hash" Different implementations of the ECDSA signature validation may apply a keccak256 hash to the message passed, so care must be taken to pass the correct arguments. - For example, the [Solana secp256k1 program](https://docs.anza.xyz/runtime/programs/#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. + For example, the [Solana secp256k1 program](https://solana.com/docs/core/programs#secp256k1-program){target=\_blank} will hash the message passed. In this case, the argument for the message should be a single hash of the body, not the twice-hashed body. ## Payload Types From 7a76af03d25d3b0d4df468fcf2335c8fde090508 Mon Sep 17 00:00:00 2001 From: 0xlukem Date: Wed, 18 Jun 2025 20:57:28 -0300 Subject: [PATCH 5/6] fix description --- products/connect/guides/hosted-version.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/products/connect/guides/hosted-version.md b/products/connect/guides/hosted-version.md index 6cf1796ac..05b1abf3f 100644 --- a/products/connect/guides/hosted-version.md +++ b/products/connect/guides/hosted-version.md @@ -1,6 +1,6 @@ --- title: Integrate Connect via CDN -description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. +description: Learn how to use Wormhole Connect via CDN in any JavaScript project using just a script tag with no React or backend setup required. categories: Connect, Transfer --- From 70a7f9d48b5da377c3173cde428f04edf38f35f5 Mon Sep 17 00:00:00 2001 From: 0xlukem Date: Wed, 18 Jun 2025 20:57:41 -0300 Subject: [PATCH 6/6] llms --- llms-files/llms-connect.txt | 2 +- llms-files/llms-transfer.txt | 2 +- llms-full.txt | 2 +- llms.txt | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/llms-files/llms-connect.txt b/llms-files/llms-connect.txt index e61e06196..d66328e50 100644 --- a/llms-files/llms-connect.txt +++ b/llms-files/llms-connect.txt @@ -978,7 +978,7 @@ Doc-Content: https://wormhole.com/docs/products/connect/guides/hosted-version/ --- BEGIN CONTENT --- --- title: Integrate Connect via CDN -description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. +description: Learn how to use Wormhole Connect via CDN in any JavaScript project using just a script tag with no React or backend setup required. categories: Connect, Transfer --- diff --git a/llms-files/llms-transfer.txt b/llms-files/llms-transfer.txt index f1cb08118..6105e5a89 100644 --- a/llms-files/llms-transfer.txt +++ b/llms-files/llms-transfer.txt @@ -3929,7 +3929,7 @@ Doc-Content: https://wormhole.com/docs/products/connect/guides/hosted-version/ --- BEGIN CONTENT --- --- title: Integrate Connect via CDN -description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. +description: Learn how to use Wormhole Connect via CDN in any JavaScript project using just a script tag with no React or backend setup required. categories: Connect, Transfer --- diff --git a/llms-full.txt b/llms-full.txt index c77b16b33..c51d4f8eb 100644 --- a/llms-full.txt +++ b/llms-full.txt @@ -5077,7 +5077,7 @@ Doc-Content: https://wormhole.com/docs/products/connect/guides/hosted-version/ --- BEGIN CONTENT --- --- title: Integrate Connect via CDN -description: Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. +description: Learn how to use Wormhole Connect via CDN in any JavaScript project using just a script tag with no React or backend setup required. categories: Connect, Transfer --- diff --git a/llms.txt b/llms.txt index 78082a627..b3f0c0c76 100644 --- a/llms.txt +++ b/llms.txt @@ -15,7 +15,7 @@ - [Connect Theme & UI Customization](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/configuration/theme.md): Learn how to style Wormhole Connect with custom color schemes, fonts, layouts, and menus for a streamlined user experience. - [Connect FAQs](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/faqs.md): Common questions and detailed answers about using Wormhole Connect, including supported assets, chains, customization, and integration options. - [Get Started with Connect](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/get-started.md): Follow this guide to configure and use the Connect UI widget to easily add an intuitive, multichain asset transfer UI to your web applications. -- [Integrate Connect via CDN](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/guides/hosted-version.md): Bridge tokens across chains instantly with Wormhole Connect’s prebuilt UI. Add the script, no backend setup needed. +- [Integrate Connect via CDN](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/guides/hosted-version.md): Learn how to use Wormhole Connect via CDN in any JavaScript project using just a script tag with no React or backend setup required. - [Wormhole Connect v1.0 Migration Guide](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/guides/upgrade.md): Learn how to migrate to Wormhole Connect v1.0, with step-by-step guidance on updating your package and configuration. - [Wormhole Connect](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/overview.md): With Wormhole Connect, you can seamlessly bridge digital assets and data across a wide range of supported blockchain networks. - [Features](https://raw.githubusercontent.com/wormhole-foundation/wormhole-docs/refs/heads/main/products/connect/reference/support-matrix.md): Explore a comprehensive Feature Support matrix and explain Wormhole's capabilities across networks for Token Bridge, CCTP, ETH Bridge, and more.