Coding Guide
A coding overview to xchainjs.
Address
: a crypto address as a string.BaseAmount
: a bigNumber in 1e8 format. E.g. 1 BTC = 100,000,000 in BaseAmountAssetAmount
: a BaseAmount*10^8. E.g. 1 BTC = 1 in Asset Amount.Asset
: Asset details {Chain, symbol, ticker, isSynth}
assetFromString()
is used to quickly create assets and will assign chain and synth.CryptoAmount:
is a class that has:
baseAmount: BaseAmount
readonly asset: Asset
All crypto should use the
CryptoAmount
object with the understanding they are in BaseAmount format. An example to switch between them:// Define 1 BTC as CryptoAmount
oneBtc = new CryptoAmount(assetToBase(assetAmount(1)), assetFromStringEx(`BTC.BTC`))
// Print 1 BTC in BaseAmount
console.log(oneBtc.amount().toNumber().toFixed()) // 100000000
// Print 1 BTC in Asset Amount
console.log(oneBtc.AssetAmount().amount().toNumber().toFixed()) // 1
Major data types for the thorchain-query package.
The input Type for
estimateSwap
. This is designed to be created by interfaces and passed into EstimateSwap. Also see Swap Memo for more information. Variable | Data Type | Comments |
---|---|---|
input | CryptoAmount | inbound asset and amount |
destinationAsset | Asset | outbound asset |
destinationAddress | String | outbound asset address |
slipLimit | BigNumber | Optional: Used to set LIM |
affiliateFeePercent | number | Optional: 0-0.1 allowed |
affiliateAddress | Address | Optional: thor address |
interfaceID | string | Optional: assigned interface ID |
The internal return type is used within estimateSwap after the calculation is done.
Variable | Data Type | Comments |
---|---|---|
totalFees | TotalFees | All fees for swap |
slipPercentage | BigNumber | Actual slip of the swap |
netOutput | CryptoAmount | input - totalFees |
waitTimeSeconds | number | Estimated time for the swap |
canSwap | boolean | false if there is an issue |
errors | string array | contains info if canSwap is false |
Return type of
estimateSwap
. This is designed to be used by interfaces to give them all the information they need to display to the user. Variable | Data Type | Comments |
---|---|---|
txEstimate | SwapEstimate | swap details |
memo | string | constructed memo THORChain will understand |
expiry | DateTime | when the SwapEstimate information will no longer be valid. |
toAddress | string | current Asgard Vault address From inbound_address |
Do not use
toAddress
after expiry
as the Asgard vault rotatesMajor data types for the thorchain-query package.
Input Type for doSwap where a swap will be actually conducted. Based on EstimateSwapParams.
Variable | Text | Text |
---|---|---|
hash | string | inbound Tx Hash |
url | string | Block exploer url |
waitTimeSeconds | number | Estimated time for the swap |
Last modified 10mo ago