Compare commits
4 Commits
1b22be73f1
...
8ce03171cc
Author | SHA1 | Date |
---|---|---|
Bruce Riley | 8ce03171cc | |
Karl Kempe | 3555c22f2b | |
Karl Kempe | 1977bbede0 | |
Kevin Peters | 344574ef99 |
|
@ -22,7 +22,7 @@ import { makeProvider } from "./src/provider";
|
|||
require("dotenv").config({ path: ".env" });
|
||||
|
||||
// swap related parameters (configurable in UI)
|
||||
const SWAP_AMOUNT_IN_MATIC = "0.0069";
|
||||
const SWAP_AMOUNT_IN_MATIC = "0.069";
|
||||
const SWAP_AMOUNT_IN_ETH = "0.000907";
|
||||
const SWAP_AMOUNT_IN_AVAX = "0.0075";
|
||||
const SWAP_AMOUNT_IN_BNB = "0.0015";
|
||||
|
@ -243,12 +243,12 @@ async function swapEverythingExactIn(
|
|||
|
||||
// do the dst swap after fetching vaa
|
||||
// connect dst wallet
|
||||
const dstWallet = determineWalletFromToken(tokenOutAddress);
|
||||
//const dstWallet = determineWalletFromToken(tokenOutAddress);
|
||||
|
||||
console.info("fetchVaaAndSwap");
|
||||
//console.info("fetchVaaAndSwap");
|
||||
//const dstSwapReceipt = await swapper.fetchVaaAndSwap(dstWallet);
|
||||
//console.info(`dst transaction: ${dstSwapReceipt.transactionHash}`);
|
||||
console.warn("jk");
|
||||
//console.warn("jk");
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -412,8 +412,8 @@ async function main() {
|
|||
const tokenOut = getTokenInfo(args.out);
|
||||
//const tokenOut = UST_TOKEN_INFO;
|
||||
|
||||
const recipientAddress = "0x4e2dfAD7D7d0076b5A0A41223E4Bee390C33251C";
|
||||
//const recipientAddress = "terra1vewnsxcy5fqjslyyy409cw8js550esen38n8ey";
|
||||
//const recipientAddress = "0x4e2dfAD7D7d0076b5A0A41223E4Bee390C33251C";
|
||||
const recipientAddress = "terra1vewnsxcy5fqjslyyy409cw8js550esen38n8ey";
|
||||
|
||||
if (testExactIn) {
|
||||
console.info(`testing exact in. native=${isNative}`);
|
||||
|
@ -427,7 +427,7 @@ async function main() {
|
|||
determineAmountFromToken(tokenIn.address),
|
||||
recipientAddress
|
||||
);
|
||||
|
||||
/*
|
||||
if (tokenOut.address === UST_TOKEN_INFO.address) {
|
||||
console.warn("not pinging back");
|
||||
} else {
|
||||
|
@ -441,6 +441,7 @@ async function main() {
|
|||
recipientAddress
|
||||
);
|
||||
}
|
||||
*/
|
||||
} else {
|
||||
console.info(`testing exact out. native=${isNative}`);
|
||||
|
||||
|
|
|
@ -576,18 +576,24 @@ export default function Home() {
|
|||
<Typography variant="subtitle1">{relayerTimeoutString}</Typography>
|
||||
)}
|
||||
<Typography variant="subtitle2" color="error">
|
||||
WARNING: this is a testnet release only
|
||||
WARNING: this is a testnet release only, prices may not reflect
|
||||
reality
|
||||
</Typography>
|
||||
</Paper>
|
||||
<div className={classes.spacer} />
|
||||
<Footer />
|
||||
<Link href="https://goerli-faucet.slock.it/"
|
||||
target="_blank" style={{ margin: "5px" }}>
|
||||
<Link
|
||||
href="https://goerli-faucet.slock.it/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ margin: "5px" }}
|
||||
>
|
||||
Goerli Faucet
|
||||
</Link>
|
||||
<Link
|
||||
href="https://faucet.polygon.technology/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ margin: "5px" }}
|
||||
>
|
||||
Mumbai Faucet
|
||||
|
@ -595,6 +601,7 @@ export default function Home() {
|
|||
<Link
|
||||
href="https://faucet.avax-test.network/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ margin: "5px" }}
|
||||
>
|
||||
Fuji Faucet
|
||||
|
@ -602,6 +609,7 @@ export default function Home() {
|
|||
<Link
|
||||
href="https://testnet.binance.org/faucet-smart/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ margin: "5px" }}
|
||||
>
|
||||
BSC Faucet
|
||||
|
@ -609,6 +617,7 @@ export default function Home() {
|
|||
<Link
|
||||
href="https://github.com/certusone/wormhole-nativeswap-example/"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
style={{ margin: "5px" }}
|
||||
>
|
||||
NativeSwap GitHub
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -167,26 +167,6 @@ export async function relayVaaToTerra(
|
|||
) {
|
||||
if (!terraContractData) return;
|
||||
|
||||
// logger.debug(
|
||||
// "relayVaaToTerra: checking if already redeemed using tokenBridgeAddress [" +
|
||||
// terraContractData.tokenBridgeAddress +
|
||||
// "]"
|
||||
// );
|
||||
|
||||
// if (await isRedeemedOnTerra(terraContractData, vaaBytes)) {
|
||||
// logger.info(
|
||||
// "relayVaaToTerra: srcChain: " +
|
||||
// t3Payload.sourceChainId +
|
||||
// ", targetChain: " +
|
||||
// t3Payload.targetChainId +
|
||||
// ", contract: [" +
|
||||
// t3Payload.contractAddress +
|
||||
// "]: completed: already redeemed"
|
||||
// );
|
||||
|
||||
// return;
|
||||
// }
|
||||
|
||||
try {
|
||||
logger.debug(
|
||||
"relayVaaToTerra: creating message using contract address [" +
|
||||
|
@ -241,6 +221,34 @@ export async function relayVaaToTerra(
|
|||
|
||||
const receipt = await terraContractData.lcdClient.tx.broadcast(tx);
|
||||
|
||||
if (!receipt.txhash) {
|
||||
logger.info(
|
||||
"relayVaaToTerra: srcChain: " +
|
||||
t3Payload.sourceChainId +
|
||||
", targetChain: " +
|
||||
t3Payload.targetChainId +
|
||||
", contract: [" +
|
||||
t3Payload.contractAddress +
|
||||
"]: completed: failed, no txhash: %o",
|
||||
receipt
|
||||
);
|
||||
}
|
||||
|
||||
if (receipt.raw_log && receipt.raw_log.search("VaaAlreadyExecuted") >= 0) {
|
||||
logger.info(
|
||||
"relayVaaToTerra: srcChain: " +
|
||||
t3Payload.sourceChainId +
|
||||
", targetChain: " +
|
||||
t3Payload.targetChainId +
|
||||
", contract: [" +
|
||||
t3Payload.contractAddress +
|
||||
"]: completed: success: already executed, txhash: " +
|
||||
receipt.txhash
|
||||
);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
logger.info(
|
||||
"relayVaaToTerra: srcChain: " +
|
||||
t3Payload.sourceChainId +
|
||||
|
@ -248,31 +256,10 @@ export async function relayVaaToTerra(
|
|||
t3Payload.targetChainId +
|
||||
", contract: [" +
|
||||
t3Payload.contractAddress +
|
||||
"]: completed: success: %o",
|
||||
receipt
|
||||
"]: completed: success: txhash: " +
|
||||
receipt.txhash
|
||||
);
|
||||
|
||||
// logger.info(
|
||||
// "relayVaaToTerra: contract: [" +
|
||||
// t3Payload.contractAddress +
|
||||
// "]: success, txHash: " +
|
||||
// receipt.transactionHash
|
||||
// );
|
||||
} catch (e: any) {
|
||||
// if (await isRedeemedOnTerra(terraContractData, vaaBytes)) {
|
||||
// logger.info(
|
||||
// "relayVaaToTerra: srcChain: " +
|
||||
// t3Payload.sourceChainId +
|
||||
// ", targetChain: " +
|
||||
// t3Payload.targetChainId +
|
||||
// ", contract: [" +
|
||||
// t3Payload.contractAddress +
|
||||
// "]: completed: relay failed because the vaa has already been redeemed"
|
||||
// );
|
||||
|
||||
// return;
|
||||
// }
|
||||
|
||||
logger.error(
|
||||
"relayVaaToTerra: srcChain: " +
|
||||
t3Payload.sourceChainId +
|
||||
|
@ -284,74 +271,4 @@ export async function relayVaaToTerra(
|
|||
e
|
||||
);
|
||||
}
|
||||
|
||||
// if (await isRedeemedOnTerra(terraContractData, vaaBytes)) {
|
||||
// logger.info(
|
||||
// "relayVaaToTerra: srcChain: " +
|
||||
// t3Payload.sourceChainId +
|
||||
// ", targetChain: " +
|
||||
// t3Payload.targetChainId +
|
||||
// ", contract: [" +
|
||||
// t3Payload.contractAddress +
|
||||
// "]: redeem confirmed"
|
||||
// );
|
||||
// } else {
|
||||
// logger.error(
|
||||
// "relayVaaToTerra: srcChain: " +
|
||||
// t3Payload.sourceChainId +
|
||||
// ", targetChain: " +
|
||||
// t3Payload.targetChainId +
|
||||
// ", contract: [" +
|
||||
// t3Payload.contractAddress +
|
||||
// "]: completed: failed to confirm redeem!"
|
||||
// );
|
||||
// }
|
||||
}
|
||||
|
||||
async function isRedeemedOnTerra(
|
||||
terraContractData: TerraContractData,
|
||||
vaaBytes: string
|
||||
): Promise<boolean> {
|
||||
let msg: Terra.MsgExecuteContract = null;
|
||||
let sequenceNumber: number = 0;
|
||||
try {
|
||||
msg = new Terra.MsgExecuteContract(
|
||||
terraContractData.wallet.key.accAddress,
|
||||
terraContractData.tokenBridgeAddress,
|
||||
{
|
||||
submit_vaa: {
|
||||
data: Buffer.from(vaaBytes, "hex").toString("base64"),
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
sequenceNumber = await terraContractData.wallet.sequence();
|
||||
} catch (e) {
|
||||
logger.error(
|
||||
"isRedeemedOnTerra: failed to create message or look up sequence number, e: %o",
|
||||
e
|
||||
);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
await terraContractData.lcdClient.tx.estimateFee(
|
||||
[{ sequenceNumber: sequenceNumber }],
|
||||
{
|
||||
msgs: [msg],
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
if (e.response.data.error.includes("VaaAlreadyExecuted")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
logger.error(
|
||||
"isRedeemedOnTerra: failed to check if transfer is already complete, e: %o",
|
||||
e
|
||||
);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue