cosmos-explorer/src/api/V1/request.js
2021-03-15 01:14:32 +08:00

129 lines
5.1 KiB
JavaScript

/*
* @Author: your name
* @Date: 2020-03-06 23:47:28
* @lastTime: 2020-12-11 15:29:37
* @LastEditors: dingyi
* @Description: In User Settings Edit
* @FilePath: /look-web/src/api/V1/request.js
*/
const get = (url) => ({ method: 'get', url, headers: { server: window.chain.lcd } })
const getRpc = (url) => ({ method: 'get', url, headers: { server: window.chain.rpc } })
export const getKavaCdpParameters = () => (get('/cdp/parameters'))
export const getKavaPricefeed = () => (get('/pricefeed/parameters'))
export const getKavaIncentive = () => (get('/incentive/parameters'))
export const getKavaBep3 = () => (get('/bep3/parameters'))
export const getKavaAuction = () => (get('/auction/parameters'))
// RPC ===
export const getRpcCommitHeight = ({ height }) => (getRpc(`/commit?height=${height}`))
export const getRpcBlockchain = ({ minHeight, maxHeight }) => (getRpc(`/blockchain?minHeight=${minHeight}&maxHeight=${maxHeight}`))
export const getRpcValidators = ({ height }) => (getRpc(`/validators?height=${height}`))
export const getRpcGenesis = () => (getRpc('/genesis'))
export const getRpcConsensus_state = () => (getRpc('/consensus_state'))
// 获取最新高度
export const getRpcAbciInfo = () => (getRpc('/abci_info'))
// LCD ===
// node info
// Auth
export const getAuthAccounts = ({ address }) => (get(`/auth/accounts/${address}`))
// Blocks
export const getBlocksLatest = () => (get('/blocks/latest'))
export const getBlocksHeight = ({ height }) => (get(`/blocks/${height}`))
// Distribution
export const getDistributionParameters = () => (get('/distribution/parameters'))
export const getDistributionDelegatorsRewards = ({ delegatorAddress }) => (get(`/distribution/delegators/${delegatorAddress}/rewards`))
// Gov
export const getGovParametersDeposit = () => (get('/gov/parameters/deposit'))
export const getGovParametersVoting = () => (get('/gov/parameters/voting'))
export const getGovParametersTallying = () => (get('/gov/parameters/tallying'))
// goverance
export const getGovProposals = () => (get('/gov/proposals'))
export const getGovProposalsId = ({ id }) => (get(`/gov/proposals/${id}`))
export const getGovProposalsDeposits = ({ proposalId }) => (get(`/gov/proposals/${proposalId}/deposits`))
export const getGovProposalsVotes = ({ proposalId }) => (get(`/gov/proposals/${proposalId}/votes`))
// committee
export const getCommitteeCommittees = () => {}
export const getCommitteeCommitteesId = ({ id }) => (get(`/committee/committees/${id}`))
// Slashing
export const getSlashingParameters = () => (get('/slashing/parameters'))
export const getSlashingValidatorsSigningInfo = ({ validatorAddress }) => (get(`/slashing/validators/${validatorAddress}/signing_info`))
export const getSupplyTotal = () => (get('/supply/total'))
export const getStakingPool = () => (get('/staking/pool'))
export const getStakingParameters = () => (get('/staking/parameters'))
export const getStakingValidators = ({ status }) => (get(`/staking/validators?status=${status || 'bonded'}`))
export const getStakingValidatorsObj = ({ status }) => (get(`/staking/validators?status=${status || 'bonded'}`))
export const getStakingValidatorsValidatorAddress = ({ validatorAddress }) => (get(`/staking/validators/${validatorAddress}`))
export const getStakingDelegatorsDelegations = ({ delegatorAddress }) => (get(`/staking/delegators/${delegatorAddress}/delegations`))
export const getStakingValidatorsDelegations = ({ validatorAddress }) => (get(`/staking/validators/${validatorAddress}/delegations`))
// Minting
export const getMintingParameters = () => (get('/minting/parameters'))
export const getMintingInflation = () => (get('/minting/inflation'))
export const getMintingAnnualProvisionsn = () => (get('/minting/annual-provisions'))
// Node
export const getNodeInfo = () => (get('/node_info'))
export const getNodeInfoRes = () => (get('/node_info'))
// Tx
export const getTxs = ({ height }) => {
const config = get('/txs')
config.params = {
'tx.height': height
}
return config
}
export const getTxsHistory = ({ address, page, }) => {
const config = get('/txs')
config.params = {
page,
limit: 10,
'message.sender': address
}
return config
}
export const getTxsHash = ({ hash }) => (get(`/txs/${hash}`))
// Validators
export const getValidatorsetsHeight = ({ height }) => (get(`/validatorsets/${height}`))
// POST ===
// post Send coins from one account to another
export function postBankAccountsTransfers({ address, chain_id, account_number, sequence, amount, denom, memo, simulate }) {
return {
method: 'post',
url: `/bank/accounts/${address}/transfers`,
data: {
base_req: {
"from": address,
"memo": memo || "Sent via look.ping.pub",
chain_id,
account_number,
sequence,
"gas": "200000",
"gas_adjustment": "2.3",
"fees": [
Coin({ amount, denom })
],
simulate
},
"amount": [
Coin({ amount, denom })
]
}
}
}
// post Broadcast a signed tx
export function postTxs({ txBroadcast }) {
const config = get('/txs')
config.method = 'post'
config.data = { ...txBroadcast }
return config
}
function Coin({ amount, denom }) {
return {
amount: String(amount),
denom
};
}