Skip to content

Instantly share code, notes, and snippets.

@mfbevan
Last active January 7, 2025 00:29
Show Gist options
  • Select an option

  • Save mfbevan/130495a0f5345e66826177a08ff16311 to your computer and use it in GitHub Desktop.

Select an option

Save mfbevan/130495a0f5345e66826177a08ff16311 to your computer and use it in GitHub Desktop.
glue lz config
info: [OApp] Checking OApp configuration
info: [OApp] Checking OApp peers configuration
info: [OApp] ✓ Checked OApp peers configuration
info: [OApp] Checking send libraries configuration
info: [OApp] ✓ Checked send libraries configuration
info: [OApp] Checking receive libraries configuration
info: [OApp] ✓ Checked receive libraries configuration
info: [OApp] Checking receive library timeout configuration
info: [OApp] ✓ Checked receive library timeout configuration
info: [OApp] Checking send configuration
info: [OApp] ✓ Checked send configuration
info: [OApp] Checking receive configuration
info: [OApp] ✓ Checked receive configuration
info: [OApp] Checking enforced options
info: [OApp] ✓ Checked enforced options
info: [OApp] Checking OApp callerBpsCap configuration
info: [OApp] ✓ Checked OApp callerBpsCap configuration
info: [OApp] Checking OApp delegates configuration
info: [OApp] ✓ Checked OApp delegates
info: [OApp] ✓ Checked OApp configuration
info: There is 1 transaction required to configure the OApp
✔ Would you like to preview the transactions before continuing? … yes
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Endpoint GLUE_V2_MAINNET │
│ OmniAddress 0xcb566e3B6934Fa77258d68ea18E931fa75e1aaAa │
│ OmniContract - │
│ Function Name - │
│ Function Arguments - │
│ Description Setting send library for SOLANA_V2_MAINNET to 0x15e51701f245f6d5bd0fee87bcaf55b0841451b3 │
│ Data 0x9535ff3000000000000000000000000081e7f9ebaba2cc796b9799c50eced36e8361174f00000000000000000000000000000000000000000000000000000000000075d800000000000000000000000015e51701f245f6d5bd0fee87bcaf55b0841451b3 │
│ Value - │
│ Gas Limit - │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
✔ Would you like to submit the required transactions? … yes
info: Successfully sent 0 transactions
error: Failed to send 1 transaction
✔ Would you like to preview the failed transactions? … yes
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ error Error: cannot estimate gas; transaction may fail or may require manual gas limit [ See: https://links.ethers.org/v5-errors-UNPREDICTABLE_GAS_LIMIT ] (error={"name":"ProviderError","_stack":"ProviderError: VM Exception while processing transaction: revert\n at HttpProvider.request │
│ (/Users/mfbevan/repos/glue/glue-lz-solana/node_modules/.pnpm/hardhat@2.22.17_bufferutil@4.0.9_ts-node@10.9.2_@swc+core@1.10.4_@swc+helpers@0.5.15__@types+_c2sruaofpqpi22knzatvlt6c4u/node_modules/hardhat/src/internal/core/providers/http.ts:107:21)\n at processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async │
│ EthersProviderWrapper.send │
│ (/Users/mfbevan/repos/glue/glue-lz-solana/node_modules/.pnpm/@nomiclabs+hardhat-ethers@2.2.3_ethers@5.7.2_bufferutil@4.0.9_utf-8-validate@5.0.10__hardhat@_efef34chnr3byckjavjrycqniu/node_modules/@nomiclabs/hardhat-ethers/src/internal/ethers-provider-wrapper.ts:13:20)","code":-32603,"_isProviderError":true,"data":"0xd0ecb66b"}, │
│ method="estimateGas", │
│ transaction={"from":"0x72f9A355e48F228B72c4e8FA90bD91c3eC0bC868","to":"0xcb566e3B6934Fa77258d68ea18E931fa75e1aaAa","data":"0x9535ff3000000000000000000000000081e7f9ebaba2cc796b9799c50eced36e8361174f00000000000000000000000000000000000000000000000000000000000075d800000000000000000000000015e51701f245f6d5bd0fee87bcaf55b0841451b3","accessList":null}, │
│ code=UNPREDICTABLE_GAS_LIMIT, version=providers/5.7.2) │
│ Endpoint GLUE_V2_MAINNET │
│ OmniAddress 0xcb566e3B6934Fa77258d68ea18E931fa75e1aaAa │
│ OmniContract - │
│ Function Name - │
│ Function Arguments - │
│ Description Setting send library for SOLANA_V2_MAINNET to 0x15e51701f245f6d5bd0fee87bcaf55b0841451b3 │
│ Data 0x9535ff3000000000000000000000000081e7f9ebaba2cc796b9799c50eced36e8361174f00000000000000000000000000000000000000000000000000000000000075d800000000000000000000000015e51701f245f6d5bd0fee87bcaf55b0841451b3 │
│ Value - │
│ Gas Limit - │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
✔ Would you like to retry? … no
error: ⤫ Failed to configure the OApp
import { EndpointId } from '@layerzerolabs/lz-definitions'
import { ExecutorOptionType } from '@layerzerolabs/lz-v2-utilities'
import type { OAppOmniGraphHardhat, OmniPointHardhat } from '@layerzerolabs/toolbox-hardhat'
const glueMainnetContract: OmniPointHardhat = {
eid: EndpointId.GLUE_V2_MAINNET,
contractName: 'GlueAdapter',
}
const solanaContract: OmniPointHardhat = {
eid: EndpointId.SOLANA_V2_MAINNET,
address: 'UWVUEwjkUWRMSfrsUgi37KoDEGS3ApBPMw3sLDmxxtw',
}
const config: OAppOmniGraphHardhat = {
contracts: [
{
contract: glueMainnetContract,
},
{
contract: solanaContract,
},
],
connections: [
{
from: glueMainnetContract,
to: solanaContract,
config: {
sendLibrary: '0x15e51701f245f6d5bd0fee87bcaf55b0841451b3',
sendConfig: {
executorConfig: {
executor: '0xa20DB4Ffe74A31D17fc24BD32a7DD7555441058e',
maxMessageSize: 10000,
},
ulnConfig: {
confirmations: BigInt(2),
requiredDVNs: ['0xce8358bc28dd8296Ce8cAF1CD2b44787abd65887'],
optionalDVNs: [],
},
},
receiveLibraryConfig: {
receiveLibrary: '0xfd76d9CB0Bac839725aB79127E7411fe71b1e3CA',
gracePeriod: BigInt(0),
},
receiveConfig: {
ulnConfig: {
confirmations: BigInt(2),
requiredDVNs: ['0xce8358bc28dd8296Ce8cAF1CD2b44787abd65887'],
optionalDVNs: [],
},
},
enforcedOptions: [
{
msgType: 1,
optionType: ExecutorOptionType.LZ_RECEIVE,
gas: 200000,
value: 2500000,
},
{
msgType: 2,
optionType: ExecutorOptionType.LZ_RECEIVE,
gas: 200000,
value: 2500000,
},
{
// Solana options use (gas == compute units, value == lamports)
msgType: 2,
optionType: ExecutorOptionType.COMPOSE,
index: 0,
gas: 0,
value: 0,
},
],
},
},
{
from: solanaContract,
to: glueMainnetContract,
config: {
sendLibrary: '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH',
receiveLibraryConfig: {
receiveLibrary: '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH',
gracePeriod: BigInt(0),
},
// Optional Send Configuration
// @dev Controls how the `from` chain sends messages to the `to` chain.
sendConfig: {
executorConfig: {
maxMessageSize: 10000,
// The configured Executor address. Note, this is the executor PDA not the program ID.
executor: 'AwrbHeCyniXaQhiJZkLhgWdUCteeWSGaSN1sTfLiY7xK',
},
ulnConfig: {
// // The number of block confirmations to wait before emitting the message from the source chain.
confirmations: BigInt(32),
// The address of the DVNs you will pay to verify a sent message on the source chain ).
// The destination tx will wait until ALL `requiredDVNs` verify the message.
requiredDVNs: [
'4VDjp6XQaxoZf5RGwiPU9NR1EXSZn2TP4ATMmiSzLfhb', // LayerZero
],
// The address of the DVNs you will pay to verify a sent message on the source chain ).
// The destination tx will wait until the configured threshold of `optionalDVNs` verify a message.
optionalDVNs: [],
// The number of `optionalDVNs` that need to successfully verify the message for it to be considered Verified.
optionalDVNThreshold: 0,
},
},
// Optional Receive Configuration
// @dev Controls how the `from` chain receives messages from the `to` chain.
receiveConfig: {
ulnConfig: {
// The number of block confirmations to expect from the `to` chain.
confirmations: BigInt(15),
// The address of the DVNs your `receiveConfig` expects to receive verifications from on the `from` chain ).
// The `from` chain's OApp will wait until the configured threshold of `requiredDVNs` verify the message.
requiredDVNs: [
'4VDjp6XQaxoZf5RGwiPU9NR1EXSZn2TP4ATMmiSzLfhb', // LayerZero
],
// The address of the DVNs you will pay to verify a sent message on the source chain ).
// The destination tx will wait until the configured threshold of `optionalDVNs` verify a message.
optionalDVNs: [],
// The number of `optionalDVNs` that need to successfully verify the message for it to be considered Verified.
optionalDVNThreshold: 0,
},
},
enforcedOptions: [
{
msgType: 1,
optionType: ExecutorOptionType.LZ_RECEIVE,
gas: 200000,
},
{
msgType: 2,
optionType: ExecutorOptionType.LZ_RECEIVE,
gas: 200000,
},
],
},
},
],
}
export default config
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment