Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -25,20 +25,36 @@ export class PendulumToMoonbeamXCMPhaseHandler extends BasePhaseHandler {
const apiManager = ApiManager.getInstance();
const pendulumNode = await apiManager.getApi('pendulum');

const { pendulumEphemeralAddress, moonbeamEphemeralAddress, outputAmountBeforeFinalStep, outputTokenType } =
state.state as StateMetadata;
const {
pendulumEphemeralAddress,
moonbeamEphemeralAddress,
brlaEvmAddress,
outputAmountBeforeFinalStep,
outputTokenType,
} = state.state as StateMetadata;

if (!pendulumEphemeralAddress || !moonbeamEphemeralAddress) {
throw new Error('Ephemeral address(es) not defined in the state. This is a bug.');
if (!pendulumEphemeralAddress) {
throw new Error('Ephemeral address not defined in the state. This is a bug.');
}

if (!moonbeamEphemeralAddress && !brlaEvmAddress) {
throw new Error(
'Moonbeam ephemeral address and BRL EVM address not defined in the state. One of them should be defined. This is a bug.',
);
}

const didInputTokenArrivedOnMoonbeam = async () => {
// Token is always either axlUSDC or BRL.
const tokenAddress =
state.type === 'off' ? getAnyFiatTokenDetailsMoonbeam(FiatToken.BRL).moonbeamErc20Address : AXL_USDC_MOONBEAM;
const ownerAddress =
state.type === 'off' && state.state.outputTokenType === FiatToken.BRL
? brlaEvmAddress
: moonbeamEphemeralAddress;

const balance = await getEvmTokenBalance({
tokenAddress: tokenAddress as `0x${string}`,
ownerAddress: moonbeamEphemeralAddress as `0x${string}`,
ownerAddress: ownerAddress as `0x${string}`,
chain: moonbeam,
});

Expand Down
Loading