Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .changeset/mighty-parrots-tell.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@layerzerolabs/ua-devtools-evm-hardhat": patch
"@layerzerolabs/devtools": patch
---

solana transaction data display as base58
25 changes: 24 additions & 1 deletion packages/devtools/src/transactions/format.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,28 @@
import { OmniTransaction } from './types'
import { formatEid } from '@/omnigraph/format'
import { ChainType, endpointIdToChainType } from '@layerzerolabs/lz-definitions'
import bs58 from 'bs58'

/**
* Helper to check if an endpoint ID is for Solana
*/
const isSolanaEid = (eid: number): boolean => endpointIdToChainType(eid) === ChainType.SOLANA

/**
* Format transaction data for display.
* Converts hex to base58 for Solana transactions.
*/
const formatTransactionData = (data: string, eid: number): string => {
if (!isSolanaEid(eid)) {
return data
}

// Convert hex string to base58 for Solana
// Remove '0x' prefix if present
const hexData = data.startsWith('0x') ? data.slice(2) : data
const bytes = Uint8Array.from(Buffer.from(hexData, 'hex'))
return bs58.encode(bytes)
}

export const formatOmniTransaction = (
transaction: OmniTransaction
Expand All @@ -10,7 +33,7 @@ export const formatOmniTransaction = (
'Function Name': transaction.metadata?.functionName,
'Function Arguments': transaction.metadata?.functionArgs,
Description: transaction.description,
Data: transaction.data,
Data: formatTransactionData(transaction.data, transaction.point.eid),
Value: transaction.value,
'Gas Limit': transaction.gasLimit,
})
4 changes: 2 additions & 2 deletions packages/ua-devtools-evm-hardhat/src/tasks/oapp/wire/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
createGnosisSignerFactory,
createSignerFactory,
} from '@layerzerolabs/devtools-evm-hardhat'
import { createWireFlow } from '@layerzerolabs/devtools'
import { createWireFlow, formatOmniTransaction } from '@layerzerolabs/devtools'
import { printLogo } from '@layerzerolabs/io-devtools/swag'
import type { SignAndSendResult } from '@layerzerolabs/devtools'

Expand Down Expand Up @@ -110,7 +110,7 @@ const action: ActionType<TaskArgs> = async (
signAndSend: ({ transactions }) => {
if (outputFilename) {
logger.debug(`Writing transactions to ${outputFilename}`)
writeFileSync(outputFilename, JSON.stringify(transactions, null, 2))
writeFileSync(outputFilename, JSON.stringify(transactions.map(formatOmniTransaction), null, 2))
}
return hre.run(signAndSendSubtask, {
ci,
Expand Down