npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

trava-simulation-route

v2.0.78

Published

# Table of contents

Downloads

241

Readme

TRAVA SIMULATION ROUTE

Table of contents

import { ApplicationState } from "../State/ApplicationState";

let chainId = Number((await provider.getNetwork()).chainId);

let appState = new ApplicationState(
    userAddress: String,
    smartWalletAddress: String,
    provider: JsonRpcProvider, // reader
    chainId: chainId
);

Initialize state

Các action liên quan đến token

Khi sử dụng đồng token nào, thì khởi tạo state về số dư của đồng token đó:

appState1 = await updateUserTokenBalance(
    appState,
    tokenAddress
)

Nếu sử dụng đồng BNB

appState2 = await updateUserEthBalance(
    appState1
)

Các action liên quan đến pools: deposit, borrow, withdraw, repay

Khi sử dụng các action trong pools, thì thực hiện update state của user về pool này

appState3 = await updateTravaLPInfo(
    appState2,
    market
)

Khi gọi action supply và withdraw

appState31 = await updateLPtTokenInfo(
    appState3,
    tokenAddress
)

Khi gọi action borrow và repay

appState32 = await updateLPDebtTokenInfo(
    appState3,
    tokenAddress
)

Khi goi action claim rewards

appState31 = await updateLPtTokenInfo(
    appState3,
    tokenAddress
)

init tokenBalance of rTrava in _to address

khi goi action convert rewards

appState31 = await updateLPtTokenInfo(
    appState3,
    tokenAddress
)
init rTrava balacne in _from address
init trava balance in _to address

Các action liên qua đến nft

Tương tác với các mảnh armouries

Update các armouries của main wallet

appState4 = await updateNFTBalanceFromContract(
    appState3,
    "walletState"
)

Update các armouries của smart wallet

appState4 = await updateNFTBalanceFromContract(
    appState3,
    "smartWalletState"
)

Tương tác với các Knight

Update các Knight của main wallet

appState4 = await updateCollectionBalanceFromContract(
    appState3,
    "walletState"
)

Update các Knight của smart wallet

appState4 = await updateCollectionBalanceFromContract(
    appState3,
    "smartWalletState"
)

Tương tác với các Marketplace / Sell armoury

Update các armouries đang bán trên marketplace

appState4 = await updateSellingNFTFromContract(
    appState3
)
// update nft mà user đang bán
appState41 = await updateOwnedSellingNFT(
    appState4
)

Update state của trava token như trên

appState5 = await updateUserTokenBalance(
    appState4,
    travaTokenAddress
)

Update các armouries mà user đang bán trên marketplace

appState5 = await updateOwnedSellingNFT(
    appState4
)

Tương tác với các Marketplace / Auction

First, update auctioning NFT From Contract when chose any action in Auction

appState = await updateAuctioningNFTFromContract(
    appState
)

When create auction,

First update Owned Auctioning NFT

appState = await updateOwnedAuctioningNFT(
    appState
)

Then, update collection of from wallet

appState = await updateCollectionBalanceFromContract(
    appState
)

When make bid auction,

update trava balance of from address

appState = await updateUserTokenBalance(
    appState,
    travaTokenAddress
)

appState = await updateUserEthBalance(
    appState
)

or

appState = await updateSmartWalletTokenBalance(
    appState,
    travaTokenAddress
)

appState = await updateSmartWalletEthBalance(
    appState
)

when edit auction price

update Owned Auctioning NFT

appState = await updateOwnedAuctioningNFT(
    appState,
    from wallet state
)

when cancel auction

update Owned Auctioning NFT

appState = await updateOwnedAuctioningNFT(
    appState,
    from wallet state
)

Then, update collection of to wallet

appState = await updateCollectionBalanceFromContract(
    appState,
    to wallet state
)

when finalize auction update Owned Auctioning NFT if smartWallet is nftSeller,

update Trava balance, BNB balance of to wallet

appState = await updateUserTokenBalance(
    appState,
    travaTokenAddress
)

or

appState = await updateSmartWalletTokenBalance(
    appState,
    travaTokenAddress
)

if smartWallet is bidder,

appState = await updateCollectionBalanceFromContract(
    appState,
    to wallet state
)

Tương tác với NFT Marketplace / VeTrava

Khi chọn bất cứ action nào của veTrava NFT Marketplace, update user lock balance của from address

appState = await updateSellingVeTrava(appState);
appState = await updateTravaGovernanceState(appState)

Khi chọn action Create Sale VeTrava

appState = await updateUserLockBalance(appState, fromAddress);

Khi chon action Cancel sale VeTrava

appState = await updateUserLockBalance(appState, toAddress)

Khi chon action Buy veTrava

appState = await updateUserLockBalance(appState, toAddress)

appState = await updateTokenBalance(appState, from address, busd token address)

appState = await updateTokenBalance(appState, from address, trava token address)

Tuong tac voi liquidity Campain

Update state cua smart wallet

newAppState = await updateLiquidityCampainState(
    appState
)

Khi stake: update stakedToken balance for smart wallet, update underlyingToken balance for from address
Khi withdraw: update underlyingToken balance for "to" Address and Smart Wallet Address
Khi claimReward: update Trava balance for "to" address

Tuong tac voi Trava Staking

Update state cua Smart Wallet trong cac vault

newAppState = await updateAllAccountVault(oldAppState, address)
Khi stake: update stakedToken balance for smart wallet, update underlyingToken balance for from address
Khi withdraw: update underlyingToken balance for "to" Address and Smart Wallet Address
Khi claimReward: update Trava balance for "to" address
stakedPool = await newAppState.smartWalletState.travaLPStakingStateList.get(stakedTokenAdress.toLownerCase())

TVL = stakedPool.TVL
APR = stakedPool.APR
reward = stakedPool.claimableReward
deposited = stakedPool.deposited

Tương tác với Trava NFT Mission / Expedition

Khi tham gia vào các action của expedition

appState = await updateExpeditionState(appState)

appState = await updateOwnerKnightInExpeditionState(appState, smartWalletAddress)

Trava NFT Expedition Deploy update trava balance of from address update knight balance of from address update ticket balance of from address

appState = await updateUserLockBalance(appState, fromAddress);
appState = await updateCollectionBalanceFromContract(appState, fromAddress);
appState = await updateOwnerTicketState(appState, fromAddress);

Trava NFT Expedition Abandon update knight balance of to address

appState = await updateCollectionBalanceFromContract(appState, toAddress);

Trava NFT Expedition Abandon update knight balance of to address update trava balance of to address

appState = await updateCollectionBalanceFromContract(appState, fromAddress);
appState = await updateUserLockBalance(appState, toAddress);

Tương tác với Trava Governance

Khi chon bat cu action nao cua Trava Governance, update TravaGovernanceState

appState = await updateTravaGovernanceState(appState);

Khi chon action Create Lock, update Trava Governace State cua from address, to address, update bep20 balance of from address

appState = await updateUserLockBalance(appState, fromAddress)
appState = await updateUserLockBalance(appState, toAddress)
appState = /// update token balance cua from address

Khi chon action merge, update Trava Governace State cua from address

appState = await updateUserLockBalance(appState, fromAddress)

Khi chon cac action : coumpound, change unlock time, update Trava Governace State cua smart wallet address

appState = await updateUserLockBalance(appState, smartWalletAddress)

Khi chon cac action : withdraw update Trava Governace State cua smart wallet address, update trava balance va token lock balance cua to address

appState = await updateUserLockBalance(appState, smartWalletAddress)
appState = /// update trava balance cua to address
appState = /// update token locked balance cua to address

Khi chon action increase balance, Trava Governace State cua smart wallet address, update token locked balance cua from address

appState = // update token locked balance cua from address

Tương tác với veTrava NFT Marketplace

Khi chọn bất cứ action nào của veTrava NFT Marketplace, update selling veTrava NFT

appState = await updateSellingVeTrava(appState);

Khi chọn action Create Sale

appState = await updateUserLockBalance(appState, fromAddress);

Khi chọn action veTrava Buy

appState = await updateTokenBalance(appState, _from, priceTokenAddress);
appState = await updateUserLockBalance(appState, toAddress);

Khi chọn action Cancel Sale

appState = await updateUserLockBalance(appState, toAddress);

Khi chọn action Tranfer veTrava NFT

appState = await updateUserLockBalance(appState, walletAddress);
appState = await updateUserLockBalance(appState, smartWalletAddress);

Tương tác với Others Lending pools

Khi chọn bất cứ action nào của Others Lending pools fork Compound

appState = await updateForkCompoundLPState(appState, entity_id);

Khi chọn bất cứ action nào của Others Lending pools fork Aave

appState = await updateForkAaveLPState(appState, entity_id);

Pancake Farm

Khi update state pancake Farm

appState = await updatePancakeFarmState(appState, smartWalletAddr)

Simulate state

Sau khi init state xong. Với mỗi state, các simulate khác nhau

Simulate Utilities actions

Pull token

appState6 = await simulateSendToken(
    appState5,
    tokenAddress,
    from: wallet address
    to: smart wallet address,
    amount: number | string
)

Sendtoken

appState7 = await simulateSendToken(
    appState6,
    tokenAddress,
    from: smart wallet address
    to: main wallet address,
    amount: number | string
)

Wrap

appState8 = await simulateWrap(
    appState7,
    amount: number | string
)

Unwrap

appState9 = await simulateUnwrap(
    appState8,
    amount: number | string
)

Swap

appState10 = await simulateSwap(
    appState9,
    fromToken: token 1 address,
    toToken: token2 address,
    fromAmount: amount of token 1 will swap
    toAmount: amount of token 2 will receive
    fromAddress,
    toAddress
)

Simulate Trava Pools actions

Deposit

appState11 = await SimulationSupply(
    appState10,
    from,
    tokenAddress,
    amount: string
)

Borrow

appState12 = await SimulationBorrow(
    appState11,
    to,
    tokenAddress,
    amount: string
)

Repay

get max amount:

maxAmount = appState.smartWalletState.detailTokenInPool[tokenAddress].dToken.balances
appState13 = await SimulationRepay(
    appState12,
    from,
    tokenAddress,
    amount: string
)

Withdraw

get max amount:

maxAmount = appState.smartWalletState.detailTokenInPool[tokenAddress].tToken.balances
appState14 = await SimulationWithdraw(
    appState13,
    to,
    tokenAddress,
    amount
)

ClaimRewards

get max rewards:

claimableRewards = await calculateMaxRewards(appState);
appState15 = await SimulationClaimReward(
    appState14,
    to,
    MAX_UINT256
)

Convert rewards

get max rTrava cua from address

maxRTrava =
        app.walletState.tokenBalance.get(rTravaAddress.toLowerCase())
        or
        app.smartWalletState.tokenBalance.get(rTravaAddress.toLowerCase())
appState16 = await SimulationConvertReward(
    appState15,
    from,
    to,
    MAX_UINT256
)

Simulate Trava NFT Marketplace / Sell armoury

Buy NFT

appState15 = await simulateTravaNFTBuy(
    appState14,
    tokenId,
    from,
    to
)

Sell NFT

appState16 = await simulateTravaNFTSell(
    appState15,
    tokenId,
    price: numer | String,
    from: String
)

Cancel order

appState17 = await simulateTravaNFTCancelSale(
    appState16,
    to,
    tokenId
)

Simulate Trava NFT Marketplace / Auction

Create Auction

appState = await simulateTravaNFTCreateAuction(
    appState,
    tokenId,
    startingBid,
    duration (ms),
    from
)

Make edit auction price

appState = await simulateTravaNFTEditAuctionPrice(
    appState,
    tokenId,
    startingBid
)

Make bid auction

appState = await simulateTravaNFTMakeBidAuction(
    appState,
    tokenId,
    bidPrice,
    from
)

Make cancel auction

appState = await simulateTravaNFTCancelAuction(
    appState,
    tokenId,
    to
)

Fninalize auction

appState = await simulateTravaNFTFinalizeAuction(
    appState,
    tokenId,
    to
)

Simulate Trava NFT Marketplace / VeTrava

Simulate Create Sale veTrava NFT

appState2 = await simulateNFTVeTravaCreateSale(
    appState,
    idVeTrava,
    fromAddress,
    priceAmount,
    addressPriceToken,
);

Simulate Cancel Sale veTrava NFT

appState3 = await simulateNFTVeTravaCancelSale(
    appState,
    idVeTrava,
    toAddress,
);

Simulate Buy veTrava NFT

appState4 = await simulateNFTVeTravaBuy(
    appState,
    idVeTrava,
    toAddress,
);

Simulate Trava NFT Utilities

Transfer armoury

appState18 = await simulateTravaNFTTransfer(
    appState17,
    from: address sender,
    to: address receiver,
    tokenId: nummber | string
    contract: NFT_CORE address
)

Transfer collection

appState19 = await simulateTravaNFTTransfer(
    appState18,
    from: address sender,
    to: address receiver,
    tokenId: nummber | string
    contract: NFT_COLLECTION address
)

Simulate Tranfer veTrava NFT

appState1 = await simulateNFTVeTravaTransfer(
    appState,
    idVeTrava,
    fromAddress,
    toAddress
);

Simulate Trava NFT Mission

Trava NFT Expedition

Simulate Trava NFT Expedition Deploy

appState = await simulateExpeditionDeploy(
    appState,
    vaultAddress,
    knightId,
    buffWinRateTiket array,
    buffExpTick array,
    _fromAddress (from kinght),
    _fromAddress (from fee),
    _fromAddress (from ticket)
)

Simulate Trava NFT Expedition Abandon

appState = await simulateExpeditionAbandon(
    appState,
    vaultAddress,
    knightId,
    toAddress
)

Simulate Trava NFT Expedition Withdraw

appState = await simulateExpeditionWithdraw(
    appState,
    vaultAddress,
    knightId,
    toAddress
)

Simulate Trava Liquidity Campain

Simulate Trava Liquidity Campain Stake

maxAmount = fromState.getTokenBalanceOf(underlyingTokenAddress)

newAppState = await SimulationJoinLiquidity(
    oldAppState,
    stakedTokenAddress,
    from,
    amount
)

Simulate Trava Liquidity Campain Redeem (Withdraw)

maxAmount = oldAppState.smartWalletState.liquidityCampainState.get(stakedTokenAddress.toLowerCase())!.deposited;
newAppState = await SimulationWithdrawLiquidity(
    oldAppState,
    stakedTokenAddress,
    to,
    amount
)

Simulate Trava Liquidity Campain Claim (Withdraw)

maxAmount = oldAppState.smartWalletState.liquidityCampainState.get(stakedTokenAddress.toLowerCase())!.claimableReward;

newAppState = await SimulationClaimRewardLiquidity(
    oldAppState,
    stakedTokenAddress,
    to,
    maxAmount
)

Simulate Trava Staking

Simulate Trava Staking Stake

maxAmount = fromState.getTokenBalanceOf(underlyingTokenAddress)

newAppState = await simulateStakeStaking(
    oldAppState,
    stakedTokenAddress,
    from,
    amount
)

Simulate Trava Staking Redeem (Withdraw)

maxAmount = oldAppState.smartWalletState.travaLPStakingStateList.get(stakedTokenAddress.toLowerCase())!.deposited;
newAppState = await simulateStakingRedeem(
    oldAppState,
    stakedTokenAddress,
    to,
    amount
)

Simulate Trava Staking Claim (Withdraw)

maxAmount = oldAppState.smartWalletState.travaLPStakingStateList.get(stakedTokenAddress.toLowerCase())!.claimableReward;

newAppState = await simulateStakingClaimRewards(
    oldAppState,
    stakedTokenAddress,
    to,
    maxAmount
)

Simulate Trava Governance State

Simulate Create Lock

newAppState = await simulateTravaGovernanceCreateLock(
    oldAppState,
    tokenId,
    amount,
    from,
    period
)

Simulate Increase Balance

newAppState = await simulateTravaGovernanceIncreaseBalance(
    oldAppState,
    tokenId,
    amount,
    fromAddress,
    smartWalletAddress
)

Simulate Change unlock time

newAppState = await simulateTravaGovernanceChangeUnlockTime(
    oldAppState,
    tokenId,
    newUnlockTime
)

Simulate Compound

newAppState = await simulateTravaGovernanceCompound(
    oldAppState,
    tokenId
)

Simulate Withdraw

newAppState = await simulateTravaGovernanceWithdraw(
    oldAppState,
    tokenId,
    to
)

Simulate Merge

newAppState = await simulateTravaGovernanceMerge(
    oldAppState,
    tokenId1,
    tokenId2,
    from
)

Simulate state

Sau khi init state xong. Với mỗi state, các simulate khác nhau

Simulate Utilities actions

Pull token

appState6 = await simulateSendTokenV2(
    appState5,
    tokenAddress,
    from: wallet address
    to: smart wallet address,
    amount: string,
    contractAddress: address of actions
)

Sendtoken

appState7 = await simulateSendTokenV2(
    appState6,
    tokenAddress,
    from: smart wallet address
    to: main wallet address,
    amount: string,
    contractAddress: address of actions
)

Wrap

appState8 = await simulateWrapV2(
    appState7,
    amount:  string,
    contractAddress: address of actions
)

Unwrap

appState9 = await simulateUnwrapV2(
    appState8,
    amount:  string,
    contractAddress: address of actions
)

VeTravaTransfer

appState1 = await simulateNFTVeTravaTransfer(
    appState,
    idVeTrava,
    fromAddress,
    toAddress
);

Simulate Others Lending Pool

Simulate Supply

  • Compound
appState1 = await SimulationSupplyForkCompoundLP(
    appState,
    from address,
    entity_id,
    tokenAddress,
    amount
);
  • Aave
appState1 = await SimulationSupplyForkAaveLP(
    appState,
    from address,
    entity_id,
    tokenAddress,
    amount
);

Simulate Borrow

  • Compound
appState1 = await SimulationBorrowForkCompoundLP(
    appState,
    to address,
    entity_id,
    tokenAddress,
    amount
);
  • Aave
appState1 = await SimulationBorrowForkAaveLP(
    appState,
    to address,
    entity_id,
    tokenAddress,
    amount
);

Simulate Repay

  • Compound
appState1 = await SimulationRepayForkCompoundLP(
    appState,
    from address,
    entity_id,
    tokenAddress,
    amount
);
  • Aave
appState1 = await SimulationRepayForkAaveLP(
    appState,
    from address,
    entity_id,
    tokenAddress,
    amount
);

Simulate Withdraw

  • Compound
appState1 = await SimulationWithdrawForkCompoundLP(
    appState,
    to address,
    entity_id,
    tokenAddress,
    amount
);
  • Aave
appState1 = await SimulationWithdrawForkAaveLP(
    appState,
    to address,
    entity_id,
    tokenAddress,
    amount
);

Simulate Collateral

  • Compound
inputCollateral {
  tokenAddress: EthAddress,
  enableAsColl: 0|1,
}
inputCollaterals = Array<inputCollateral>
appState = await SimulationCollateral(
    appState,
    smart wallet address,
    entity_id,
    inputCollaterals
    );

Simulate Transfer tToken

appState1 = await SimulationTransferTToken(
    appState,
    fromAddress,
    toAddress,
    _tokenAddress,
    _amount
)

Simulate Transfer Staked Token

appState1 = await simulateTransferStakedToken(
    appState,
    _stakingPool,
    fromAddress,
    toAddress,
    _amount
);

Simulate Tranfer veTrava NFT

appState1 = await simulateNFTVeTravaTransfer(
    appState,
    idVeTrava,
    fromAddress,
    toAddress
);

Simulate Pancake Farm

Simulate Pancake Farm Stake

appState1 = await simulatePancakeFarmStakeLP(
    appState,
    wrapperAddr, // in file pancakefarmconfig
    from addr,
    amount,
    noHarvest = true
)

Simulate Pancake Farm Unstake

appState1 = await simulatePancakeFarmStakeLP(
    appState,
    wrapperAddr, // in file pancakefarmconfig
    amount,
    to addr,
    noHarvest = true
)

Simulate Pancake Farm Harvest

appState1 = await simulatePancakeFarmHarvestLP(
    appState,
    wrapperAddr, // in file pancakefarmconfig
    toAddr,
    noHarvest = true
)