ci: serialize terra2 tests
This commit is contained in:
parent
6c6bf5e522
commit
d4f9d3f8b2
|
@ -1,4 +1,4 @@
|
||||||
import { beforeAll, afterAll, expect, test } from "@jest/globals";
|
import { beforeAll, afterAll, describe, expect, test } from "@jest/globals";
|
||||||
import {
|
import {
|
||||||
isTxError,
|
isTxError,
|
||||||
LCDClient,
|
LCDClient,
|
||||||
|
@ -128,151 +128,153 @@ const ethParseLogAndGetSignedVaa = async (receipt: ethers.ContractReceipt) => {
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
test("Attest and transfer token from Terra2 to Ethereum", async () => {
|
describe("Terra Integration Tests", () => {
|
||||||
// Attest
|
test("Attest and transfer token from Terra2 to Ethereum", async () => {
|
||||||
const attestMsg = await attestFromTerra(
|
// Attest
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
const attestMsg = await attestFromTerra(
|
||||||
terraWalletAddress,
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
"uluna"
|
terraWalletAddress,
|
||||||
);
|
"uluna"
|
||||||
const attestSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
);
|
||||||
[attestMsg],
|
const attestSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
||||||
terraWallet
|
[attestMsg],
|
||||||
);
|
terraWallet
|
||||||
try {
|
);
|
||||||
await createWrappedOnEth(
|
try {
|
||||||
|
await createWrappedOnEth(
|
||||||
|
CONTRACTS.DEVNET.ethereum.token_bridge,
|
||||||
|
signer,
|
||||||
|
attestSignedVaa
|
||||||
|
);
|
||||||
|
} catch {
|
||||||
|
await updateWrappedOnEth(
|
||||||
|
CONTRACTS.DEVNET.ethereum.token_bridge,
|
||||||
|
signer,
|
||||||
|
attestSignedVaa
|
||||||
|
);
|
||||||
|
}
|
||||||
|
// Transfer
|
||||||
|
const transferMsgs = await transferFromTerra(
|
||||||
|
terraWalletAddress,
|
||||||
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
|
"uluna",
|
||||||
|
"1000000",
|
||||||
|
CHAIN_ID_ETH,
|
||||||
|
tryNativeToUint8Array(ethWalletAddress, CHAIN_ID_ETH)
|
||||||
|
);
|
||||||
|
const transferSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
||||||
|
transferMsgs,
|
||||||
|
terraWallet
|
||||||
|
);
|
||||||
|
await redeemOnEth(
|
||||||
CONTRACTS.DEVNET.ethereum.token_bridge,
|
CONTRACTS.DEVNET.ethereum.token_bridge,
|
||||||
signer,
|
signer,
|
||||||
attestSignedVaa
|
transferSignedVaa
|
||||||
);
|
);
|
||||||
} catch {
|
});
|
||||||
await updateWrappedOnEth(
|
|
||||||
|
test("Attest and transfer token from Ethereum to Terra2", async () => {
|
||||||
|
// Attest
|
||||||
|
const attestReceipt = await attestFromEth(
|
||||||
CONTRACTS.DEVNET.ethereum.token_bridge,
|
CONTRACTS.DEVNET.ethereum.token_bridge,
|
||||||
signer,
|
signer,
|
||||||
|
TEST_ERC20
|
||||||
|
);
|
||||||
|
const attestSignedVaa = await ethParseLogAndGetSignedVaa(attestReceipt);
|
||||||
|
const createWrappedMsg = await createWrappedOnTerra(
|
||||||
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
|
terraWalletAddress,
|
||||||
attestSignedVaa
|
attestSignedVaa
|
||||||
);
|
);
|
||||||
}
|
await terraBroadcastAndWaitForExecution([createWrappedMsg], terraWallet);
|
||||||
// Transfer
|
// Transfer
|
||||||
const transferMsgs = await transferFromTerra(
|
await approveEth(
|
||||||
terraWalletAddress,
|
CONTRACTS.DEVNET.ethereum.token_bridge,
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
TEST_ERC20,
|
||||||
"uluna",
|
signer,
|
||||||
"1000000",
|
ethTransferAmount
|
||||||
CHAIN_ID_ETH,
|
);
|
||||||
tryNativeToUint8Array(ethWalletAddress, CHAIN_ID_ETH)
|
const transferReceipt = await transferFromEth(
|
||||||
);
|
CONTRACTS.DEVNET.ethereum.token_bridge,
|
||||||
const transferSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
signer,
|
||||||
transferMsgs,
|
TEST_ERC20,
|
||||||
terraWallet
|
ethTransferAmount,
|
||||||
);
|
CHAIN_ID_TERRA2,
|
||||||
await redeemOnEth(
|
tryNativeToUint8Array(terraWalletAddress, CHAIN_ID_TERRA2)
|
||||||
CONTRACTS.DEVNET.ethereum.token_bridge,
|
);
|
||||||
signer,
|
const transferSignedVaa = await ethParseLogAndGetSignedVaa(transferReceipt);
|
||||||
transferSignedVaa
|
const redeemMsg = await redeemOnTerra(
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
test("Attest and transfer token from Ethereum to Terra2", async () => {
|
|
||||||
// Attest
|
|
||||||
const attestReceipt = await attestFromEth(
|
|
||||||
CONTRACTS.DEVNET.ethereum.token_bridge,
|
|
||||||
signer,
|
|
||||||
TEST_ERC20
|
|
||||||
);
|
|
||||||
const attestSignedVaa = await ethParseLogAndGetSignedVaa(attestReceipt);
|
|
||||||
const createWrappedMsg = await createWrappedOnTerra(
|
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
|
||||||
terraWalletAddress,
|
|
||||||
attestSignedVaa
|
|
||||||
);
|
|
||||||
await terraBroadcastAndWaitForExecution([createWrappedMsg], terraWallet);
|
|
||||||
// Transfer
|
|
||||||
await approveEth(
|
|
||||||
CONTRACTS.DEVNET.ethereum.token_bridge,
|
|
||||||
TEST_ERC20,
|
|
||||||
signer,
|
|
||||||
ethTransferAmount
|
|
||||||
);
|
|
||||||
const transferReceipt = await transferFromEth(
|
|
||||||
CONTRACTS.DEVNET.ethereum.token_bridge,
|
|
||||||
signer,
|
|
||||||
TEST_ERC20,
|
|
||||||
ethTransferAmount,
|
|
||||||
CHAIN_ID_TERRA2,
|
|
||||||
tryNativeToUint8Array(terraWalletAddress, CHAIN_ID_TERRA2)
|
|
||||||
);
|
|
||||||
const transferSignedVaa = await ethParseLogAndGetSignedVaa(transferReceipt);
|
|
||||||
const redeemMsg = await redeemOnTerra(
|
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
|
||||||
terraWalletAddress,
|
|
||||||
transferSignedVaa
|
|
||||||
);
|
|
||||||
expect(
|
|
||||||
await getIsTransferCompletedTerra2(
|
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
transferSignedVaa,
|
terraWalletAddress,
|
||||||
lcd,
|
transferSignedVaa
|
||||||
)
|
);
|
||||||
).toBe(false);
|
expect(
|
||||||
await terraBroadcastAndWaitForExecution([redeemMsg], terraWallet);
|
await getIsTransferCompletedTerra2(
|
||||||
expect(
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
await getIsTransferCompletedTerra2(
|
transferSignedVaa,
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
lcd
|
||||||
transferSignedVaa,
|
)
|
||||||
lcd,
|
).toBe(false);
|
||||||
)
|
await terraBroadcastAndWaitForExecution([redeemMsg], terraWallet);
|
||||||
).toBe(true);
|
expect(
|
||||||
});
|
await getIsTransferCompletedTerra2(
|
||||||
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
|
transferSignedVaa,
|
||||||
|
lcd
|
||||||
|
)
|
||||||
|
).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
test("Attest and transfer Terra2 native token to Terra Classic", async () => {
|
test("Attest and transfer Terra2 native token to Terra Classic", async () => {
|
||||||
const attestMsg = await attestFromTerra(
|
const attestMsg = await attestFromTerra(
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
terraWalletAddress,
|
terraWalletAddress,
|
||||||
"uluna"
|
"uluna"
|
||||||
);
|
);
|
||||||
const attestSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
const attestSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
||||||
[attestMsg],
|
[attestMsg],
|
||||||
terraWallet
|
terraWallet
|
||||||
);
|
);
|
||||||
const createWrappedMsg = await createWrappedOnTerra(
|
const createWrappedMsg = await createWrappedOnTerra(
|
||||||
CONTRACTS.DEVNET.terra.token_bridge,
|
|
||||||
terraClassicWalletAddress,
|
|
||||||
attestSignedVaa
|
|
||||||
);
|
|
||||||
await terraBroadcastAndWaitForExecution(
|
|
||||||
[createWrappedMsg],
|
|
||||||
terraClassicWallet,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
// Transfer
|
|
||||||
const transferMsgs = await transferFromTerra(
|
|
||||||
terraWalletAddress,
|
|
||||||
CONTRACTS.DEVNET.terra2.token_bridge,
|
|
||||||
"uluna",
|
|
||||||
"1000000",
|
|
||||||
CHAIN_ID_TERRA,
|
|
||||||
tryNativeToUint8Array(terraClassicWalletAddress, CHAIN_ID_TERRA)
|
|
||||||
);
|
|
||||||
const transferSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
|
||||||
transferMsgs,
|
|
||||||
terraWallet
|
|
||||||
);
|
|
||||||
const redeemMsg = await redeemOnTerra(
|
|
||||||
CONTRACTS.DEVNET.terra.token_bridge,
|
|
||||||
terraClassicWalletAddress,
|
|
||||||
transferSignedVaa
|
|
||||||
);
|
|
||||||
await terraBroadcastAndWaitForExecution(
|
|
||||||
[redeemMsg],
|
|
||||||
terraClassicWallet,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
expect(
|
|
||||||
await getIsTransferCompletedTerra(
|
|
||||||
CONTRACTS.DEVNET.terra.token_bridge,
|
CONTRACTS.DEVNET.terra.token_bridge,
|
||||||
transferSignedVaa,
|
terraClassicWalletAddress,
|
||||||
lcdClassic,
|
attestSignedVaa
|
||||||
TERRA_GAS_PRICES_URL
|
);
|
||||||
)
|
await terraBroadcastAndWaitForExecution(
|
||||||
).toBe(true);
|
[createWrappedMsg],
|
||||||
|
terraClassicWallet,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
// Transfer
|
||||||
|
const transferMsgs = await transferFromTerra(
|
||||||
|
terraWalletAddress,
|
||||||
|
CONTRACTS.DEVNET.terra2.token_bridge,
|
||||||
|
"uluna",
|
||||||
|
"1000000",
|
||||||
|
CHAIN_ID_TERRA,
|
||||||
|
tryNativeToUint8Array(terraClassicWalletAddress, CHAIN_ID_TERRA)
|
||||||
|
);
|
||||||
|
const transferSignedVaa = await terraBroadcastTxAndGetSignedVaa(
|
||||||
|
transferMsgs,
|
||||||
|
terraWallet
|
||||||
|
);
|
||||||
|
const redeemMsg = await redeemOnTerra(
|
||||||
|
CONTRACTS.DEVNET.terra.token_bridge,
|
||||||
|
terraClassicWalletAddress,
|
||||||
|
transferSignedVaa
|
||||||
|
);
|
||||||
|
await terraBroadcastAndWaitForExecution(
|
||||||
|
[redeemMsg],
|
||||||
|
terraClassicWallet,
|
||||||
|
true
|
||||||
|
);
|
||||||
|
expect(
|
||||||
|
await getIsTransferCompletedTerra(
|
||||||
|
CONTRACTS.DEVNET.terra.token_bridge,
|
||||||
|
transferSignedVaa,
|
||||||
|
lcdClassic,
|
||||||
|
TERRA_GAS_PRICES_URL
|
||||||
|
)
|
||||||
|
).toBe(true);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue