Skip to content

Commit 1aa08ee

Browse files
committed
Allow IBC transfer method
1 parent ca8ad27 commit 1aa08ee

File tree

1 file changed

+46
-20
lines changed

1 file changed

+46
-20
lines changed

.github/workflows/utility/generate_assetlist_functions.mjs

Lines changed: 46 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -355,11 +355,33 @@ export async function setLocalAsset(asset_data) {
355355
return;
356356
}
357357

358-
// Only add trace if it was successfully retrieved
358+
// Add trace if it was successfully retrieved, or create minimal trace from fallback
359359
if (trace?.chain?.path) {
360360
traces.push(trace);
361361
} else {
362362
console.log(`Warning: Using path from zone_asset for ${asset_data.zone_asset.chain_name}:${asset_data.zone_asset.base_denom} (IBC connection not found in registry)`);
363+
364+
// Create minimal trace from zone_asset to prevent downstream errors
365+
// Path format: "transfer/channel-123/denom"
366+
const segments = pathToUse.split("/");
367+
const type = (asset_data.source_asset.base_denom.slice(0, 5) === "cw20:") ? "ibc-cw20" : "ibc";
368+
369+
// Extract channel ID from path (e.g., "channel-123" from segments[1])
370+
const channelId = segments[1];
371+
372+
const minimalTrace = {
373+
type: type,
374+
counterparty: {
375+
chain_name: asset_data.source_asset.chain_name,
376+
base_denom: asset_data.source_asset.base_denom,
377+
channel_id: channelId // Will be set in setTransferMethods if needed
378+
},
379+
chain: {
380+
channel_id: channelId,
381+
path: pathToUse
382+
}
383+
};
384+
traces.push(minimalTrace);
363385
}
364386

365387
try {
@@ -1554,27 +1576,31 @@ export function setTransferMethods(asset_data) {
15541576
if (asset_data.source_asset.chain_name !== asset_data.chainName) {
15551577
const traces = getAssetProperty(asset_data.local_asset, "traces");
15561578
const trace = traces?.[traces.length - 1];
1557-
const ibcTransferMethod = {
1558-
name: "Osmosis IBC Transfer",
1559-
type: "ibc",
1560-
counterparty: {
1561-
chainName: trace.counterparty.chain_name,
1562-
chainId: chain_reg.getFileProperty(
1563-
trace.counterparty.chain_name,
1564-
"chain",
1565-
"chain_id"
1566-
),
1567-
sourceDenom: trace.counterparty.base_denom,
1568-
port: trace.counterparty.port ?? "transfer",
1569-
channelId: trace.counterparty.channel_id
1570-
},
1571-
chain: {
1572-
port: trace.chain.port ?? "transfer",
1573-
channelId: trace.chain.channel_id,
1574-
path: trace.chain.path
1579+
1580+
// Only add IBC transfer method if we have a valid trace with required fields
1581+
if (trace?.counterparty?.chain_name && trace?.chain?.channel_id) {
1582+
const ibcTransferMethod = {
1583+
name: "Osmosis IBC Transfer",
1584+
type: "ibc",
1585+
counterparty: {
1586+
chainName: trace.counterparty.chain_name,
1587+
chainId: chain_reg.getFileProperty(
1588+
trace.counterparty.chain_name,
1589+
"chain",
1590+
"chain_id"
1591+
),
1592+
sourceDenom: trace.counterparty.base_denom,
1593+
port: trace.counterparty.port ?? "transfer",
1594+
channelId: trace.counterparty.channel_id
1595+
},
1596+
chain: {
1597+
port: trace.chain.port ?? "transfer",
1598+
channelId: trace.chain.channel_id,
1599+
path: trace.chain.path
1600+
}
15751601
}
1602+
transferMethods.push(ibcTransferMethod);
15761603
}
1577-
transferMethods.push(ibcTransferMethod);
15781604
}
15791605

15801606
asset_data.frontend.transferMethods = transferMethods;

0 commit comments

Comments
 (0)