bridge_ui: remove terra tax calculations
Change-Id: Iab04fe996abe06c3490a808985727c94dd922797
This commit is contained in:
parent
3607884556
commit
eb0cab8cd4
|
@ -120,7 +120,6 @@ function EthereumMigrationLineItem({
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!loaded && (poolInfo.data || poolInfo.error)) {
|
if (!loaded && (poolInfo.data || poolInfo.error)) {
|
||||||
console.log("mounted & finished loading");
|
|
||||||
onLoadComplete();
|
onLoadComplete();
|
||||||
setLoaded(true);
|
setLoaded(true);
|
||||||
}
|
}
|
||||||
|
@ -217,7 +216,7 @@ function EthereumMigrationLineItem({
|
||||||
? "The swap pool has insufficient funds."
|
? "The swap pool has insufficient funds."
|
||||||
: ""
|
: ""
|
||||||
}
|
}
|
||||||
disabled={!sufficientPoolBalance}
|
disabled={!sufficientPoolBalance || migrationIsProcessing}
|
||||||
>
|
>
|
||||||
Convert
|
Convert
|
||||||
</ButtonWithLoader>
|
</ButtonWithLoader>
|
||||||
|
|
|
@ -301,7 +301,6 @@ export default function SolanaSourceTokenSelector(
|
||||||
tokenList.sort(sortParsedTokenAccounts);
|
tokenList.sort(sortParsedTokenAccounts);
|
||||||
return tokenList;
|
return tokenList;
|
||||||
}, [mintAccounts?.data, metaplex.data, nft, props.accounts, getSymbol]);
|
}, [mintAccounts?.data, metaplex.data, nft, props.accounts, getSymbol]);
|
||||||
console.log(filteredOptions);
|
|
||||||
|
|
||||||
const isOptionDisabled = useMemo(() => {
|
const isOptionDisabled = useMemo(() => {
|
||||||
return (value: ParsedTokenAccount) => {
|
return (value: ParsedTokenAccount) => {
|
||||||
|
|
|
@ -58,7 +58,7 @@ import {
|
||||||
import { getSignedVAAWithRetry } from "../utils/getSignedVAAWithRetry";
|
import { getSignedVAAWithRetry } from "../utils/getSignedVAAWithRetry";
|
||||||
import parseError from "../utils/parseError";
|
import parseError from "../utils/parseError";
|
||||||
import { signSendAndConfirm } from "../utils/solana";
|
import { signSendAndConfirm } from "../utils/solana";
|
||||||
import { waitForTerraExecution, calculateTerraTax } from "../utils/terra";
|
import { waitForTerraExecution } from "../utils/terra";
|
||||||
import useTransferTargetAddressHex from "./useTransferTargetAddress";
|
import useTransferTargetAddressHex from "./useTransferTargetAddress";
|
||||||
|
|
||||||
async function eth(
|
async function eth(
|
||||||
|
@ -198,13 +198,11 @@ async function terra(
|
||||||
dispatch(setIsSending(true));
|
dispatch(setIsSending(true));
|
||||||
try {
|
try {
|
||||||
const amountParsed = parseUnits(amount, decimals).toString();
|
const amountParsed = parseUnits(amount, decimals).toString();
|
||||||
const amountTaxed = await calculateTerraTax(amountParsed, asset);
|
|
||||||
const msgs = await transferFromTerra(
|
const msgs = await transferFromTerra(
|
||||||
wallet.terraAddress,
|
wallet.terraAddress,
|
||||||
TERRA_TOKEN_BRIDGE_ADDRESS,
|
TERRA_TOKEN_BRIDGE_ADDRESS,
|
||||||
asset,
|
asset,
|
||||||
amountParsed,
|
amountParsed,
|
||||||
amountTaxed,
|
|
||||||
targetChain,
|
targetChain,
|
||||||
targetAddress
|
targetAddress
|
||||||
);
|
);
|
||||||
|
@ -212,20 +210,16 @@ async function terra(
|
||||||
msgs: [...msgs],
|
msgs: [...msgs],
|
||||||
memo: "Wormhole - Initiate Transfer",
|
memo: "Wormhole - Initiate Transfer",
|
||||||
});
|
});
|
||||||
console.log(result);
|
|
||||||
const info = await waitForTerraExecution(result);
|
const info = await waitForTerraExecution(result);
|
||||||
console.log(info);
|
|
||||||
dispatch(setTransferTx({ id: info.txhash, block: info.height }));
|
dispatch(setTransferTx({ id: info.txhash, block: info.height }));
|
||||||
enqueueSnackbar("Transaction confirmed", { variant: "success" });
|
enqueueSnackbar("Transaction confirmed", { variant: "success" });
|
||||||
const sequence = parseSequenceFromLogTerra(info);
|
const sequence = parseSequenceFromLogTerra(info);
|
||||||
console.log(sequence);
|
|
||||||
if (!sequence) {
|
if (!sequence) {
|
||||||
throw new Error("Sequence not found");
|
throw new Error("Sequence not found");
|
||||||
}
|
}
|
||||||
const emitterAddress = await getEmitterAddressTerra(
|
const emitterAddress = await getEmitterAddressTerra(
|
||||||
TERRA_TOKEN_BRIDGE_ADDRESS
|
TERRA_TOKEN_BRIDGE_ADDRESS
|
||||||
);
|
);
|
||||||
console.log(emitterAddress);
|
|
||||||
enqueueSnackbar("Fetching VAA", { variant: "info" });
|
enqueueSnackbar("Fetching VAA", { variant: "info" });
|
||||||
const { vaaBytes } = await getSignedVAAWithRetry(
|
const { vaaBytes } = await getSignedVAAWithRetry(
|
||||||
CHAIN_ID_TERRA,
|
CHAIN_ID_TERRA,
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { isNativeTerra } from "@certusone/wormhole-sdk";
|
import { isNativeTerra } from "@certusone/wormhole-sdk";
|
||||||
import { formatUnits } from "@ethersproject/units";
|
import { formatUnits } from "@ethersproject/units";
|
||||||
import { LCDClient, Dec, Int } from "@terra-money/terra.js";
|
import { LCDClient } from "@terra-money/terra.js";
|
||||||
import { TxResult } from "@terra-money/wallet-provider";
|
import { TxResult } from "@terra-money/wallet-provider";
|
||||||
// import { TerraTokenMetadata } from "../hooks/useTerraTokenMap";
|
// import { TerraTokenMetadata } from "../hooks/useTerraTokenMap";
|
||||||
import { TERRA_HOST } from "./consts";
|
import { TERRA_HOST } from "./consts";
|
||||||
|
@ -37,24 +37,3 @@ export async function waitForTerraExecution(transaction: TxResult) {
|
||||||
}
|
}
|
||||||
return info;
|
return info;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function calculateTerraTax(
|
|
||||||
amount: string,
|
|
||||||
denom: string
|
|
||||||
): Promise<string> {
|
|
||||||
try {
|
|
||||||
// Fetch terra tax state from current chain height.
|
|
||||||
const lcd = new LCDClient(TERRA_HOST);
|
|
||||||
const taxRate = await lcd.treasury.taxRate();
|
|
||||||
const taxCap = await lcd.treasury.taxCap(denom);
|
|
||||||
|
|
||||||
// Calculate tax rate for the current denomination.
|
|
||||||
const untaxed = new Int(amount);
|
|
||||||
const tax = untaxed.toDec().mul(taxRate);
|
|
||||||
const cap = (taxCap.amount as Int).toDec();
|
|
||||||
const min = new Dec((tax.constructor as any).min(tax, cap));
|
|
||||||
return untaxed.sub(min.toInt()).toString();
|
|
||||||
} catch(e) {
|
|
||||||
return "0";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -87,7 +87,6 @@ export async function transferFromTerra(
|
||||||
tokenBridgeAddress: string,
|
tokenBridgeAddress: string,
|
||||||
tokenAddress: string,
|
tokenAddress: string,
|
||||||
amount: string,
|
amount: string,
|
||||||
taxed: string,
|
|
||||||
recipientChain: ChainId,
|
recipientChain: ChainId,
|
||||||
recipientAddress: Uint8Array
|
recipientAddress: Uint8Array
|
||||||
) {
|
) {
|
||||||
|
@ -109,7 +108,7 @@ export async function transferFromTerra(
|
||||||
{
|
{
|
||||||
initiate_transfer: {
|
initiate_transfer: {
|
||||||
asset: {
|
asset: {
|
||||||
amount: taxed,
|
amount,
|
||||||
info: {
|
info: {
|
||||||
native_token: {
|
native_token: {
|
||||||
denom: tokenAddress,
|
denom: tokenAddress,
|
||||||
|
@ -123,8 +122,7 @@ export async function transferFromTerra(
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
uluna: BigNumber.from("10000")
|
uluna: BigNumber.from("10000").toString(),
|
||||||
.toString(),
|
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|
Loading…
Reference in New Issue