bridge_ui: remove terra tax calculations

Change-Id: Iab04fe996abe06c3490a808985727c94dd922797
This commit is contained in:
Evan Gray 2021-10-04 18:33:22 -04:00
parent 3607884556
commit eb0cab8cd4
5 changed files with 5 additions and 36 deletions

View File

@ -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>

View File

@ -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) => {

View File

@ -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,

View File

@ -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";
}
}

View File

@ -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(),
} }
), ),
] ]