mirror of
https://github.com/arnaucube/hermez-node.git
synced 2026-02-06 19:06:42 +01:00
Improve swagger doc
This commit is contained in:
@@ -81,7 +81,7 @@ func TestGetAccounts(t *testing.T) {
|
|||||||
assert.LessOrEqual(t, len(fetchedAccounts), len(tc.accounts))
|
assert.LessOrEqual(t, len(fetchedAccounts), len(tc.accounts))
|
||||||
fetchedAccounts = []testAccount{}
|
fetchedAccounts = []testAccount{}
|
||||||
// Filter by ethAddr
|
// Filter by ethAddr
|
||||||
path = fmt.Sprintf("%s?hermezEthereumAddress=%s&limit=%d&fromItem=", endpoint, tc.accounts[0].EthAddr, limit)
|
path = fmt.Sprintf("%s?hermezEthereumAddress=%s&limit=%d&fromItem=", endpoint, tc.accounts[3].EthAddr, limit)
|
||||||
err = doGoodReqPaginated(path, historydb.OrderAsc, &testAccountsResponse{}, appendIter)
|
err = doGoodReqPaginated(path, historydb.OrderAsc, &testAccountsResponse{}, appendIter)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Greater(t, len(fetchedAccounts), 0)
|
assert.Greater(t, len(fetchedAccounts), 0)
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package api
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"sync"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"github.com/hermeznetwork/hermez-node/common"
|
"github.com/hermeznetwork/hermez-node/common"
|
||||||
@@ -18,6 +19,7 @@ const (
|
|||||||
|
|
||||||
// Status define status of the network
|
// Status define status of the network
|
||||||
type Status struct {
|
type Status struct {
|
||||||
|
sync.RWMutex
|
||||||
Network Network `json:"network"`
|
Network Network `json:"network"`
|
||||||
Metrics historydb.Metrics `json:"metrics"`
|
Metrics historydb.Metrics `json:"metrics"`
|
||||||
Rollup common.RollupVariables `json:"rollup"`
|
Rollup common.RollupVariables `json:"rollup"`
|
||||||
@@ -60,8 +62,9 @@ func NewAPI(
|
|||||||
AuctionConstants: config.AuctionConstants,
|
AuctionConstants: config.AuctionConstants,
|
||||||
WDelayerConstants: config.WDelayerConstants,
|
WDelayerConstants: config.WDelayerConstants,
|
||||||
},
|
},
|
||||||
s: sdb,
|
s: sdb,
|
||||||
l2: l2db,
|
l2: l2db,
|
||||||
|
status: Status{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add coordinator endpoints
|
// Add coordinator endpoints
|
||||||
|
|||||||
@@ -58,8 +58,8 @@ var SetBlockchain = `
|
|||||||
// close Block:0, Batch:0
|
// close Block:0, Batch:0
|
||||||
> batch
|
> batch
|
||||||
|
|
||||||
CreateAccountDeposit(0) A: 111111111
|
CreateAccountDeposit(0) A: 11111111100000000000
|
||||||
CreateAccountDeposit(1) C: 222222222
|
CreateAccountDeposit(1) C: 22222222200000000000
|
||||||
CreateAccountCoordinator(0) C
|
CreateAccountCoordinator(0) C
|
||||||
|
|
||||||
// close Block:0, Batch:1
|
// close Block:0, Batch:1
|
||||||
@@ -68,7 +68,7 @@ var SetBlockchain = `
|
|||||||
// Coord(0): 0, Coord(1): 0
|
// Coord(0): 0, Coord(1): 0
|
||||||
// C(0): 0
|
// C(0): 0
|
||||||
|
|
||||||
CreateAccountDeposit(1) A: 333333333
|
CreateAccountDeposit(1) A: 33333333300000000000
|
||||||
|
|
||||||
// close Block:0, Batch:2
|
// close Block:0, Batch:2
|
||||||
> batchL1
|
> batchL1
|
||||||
@@ -76,40 +76,40 @@ var SetBlockchain = `
|
|||||||
// close Block:0, Batch:3
|
// close Block:0, Batch:3
|
||||||
> batchL1
|
> batchL1
|
||||||
|
|
||||||
CreateAccountDepositTransfer(0) B-A: 444444444, 1234444444 // to_eth_addr is NULL
|
CreateAccountDepositTransfer(0) B-A: 44444444400000000000, 123444444400000000000
|
||||||
|
|
||||||
// close Block:0, Batch:4
|
// close Block:0, Batch:4
|
||||||
> batchL1
|
> batchL1
|
||||||
CreateAccountDeposit(0) D: 555555555
|
CreateAccountDeposit(0) D: 55555555500000000000
|
||||||
|
|
||||||
// close Block:0, Batch:5
|
// close Block:0, Batch:5
|
||||||
> batchL1
|
> batchL1
|
||||||
|
|
||||||
CreateAccountCoordinator(1) B
|
CreateAccountCoordinator(1) B
|
||||||
|
|
||||||
Transfer(1) A-B: 111111 (2) // to_eth_addr is NULL
|
Transfer(1) A-B: 11111100000000000 (2)
|
||||||
Transfer(0) B-C: 222222 (3)
|
Transfer(0) B-C: 22222200000000000 (3)
|
||||||
|
|
||||||
// close Block:0, Batch:6
|
// close Block:0, Batch:6
|
||||||
> batchL1 // forge L1User{1}, forge L1Coord{2}, forge L2{2}
|
> batchL1 // forge L1User{1}, forge L1Coord{2}, forge L2{2}
|
||||||
|
|
||||||
Deposit(0) C: 666666666
|
Deposit(0) C: 66666666600000000000
|
||||||
DepositTransfer(0) C-D: 777777777, 123777777 // to_eth_addr is NULL
|
DepositTransfer(0) C-D: 77777777700000000000, 12377777700000000000
|
||||||
|
|
||||||
Transfer(0) A-B: 333333 (111)
|
Transfer(0) A-B: 33333300000000000 (111)
|
||||||
Transfer(0) C-A: 444444 (222)
|
Transfer(0) C-A: 44444400000000000 (222)
|
||||||
Transfer(1) B-C: 555555 (123)
|
Transfer(1) B-C: 55555500000000000 (123)
|
||||||
Exit(0) A: 666666 (44)
|
Exit(0) A: 66666600000000000 (44)
|
||||||
|
|
||||||
ForceTransfer(0) D-B: 777777 // to_eth_addr is NULL
|
ForceTransfer(0) D-B: 77777700000000000
|
||||||
ForceExit(0) B: 888888
|
ForceExit(0) B: 88888800000000000
|
||||||
|
|
||||||
// close Block:0, Batch:7
|
// close Block:0, Batch:7
|
||||||
> batchL1
|
> batchL1
|
||||||
> block
|
> block
|
||||||
|
|
||||||
Transfer(0) D-A: 999999 (77)
|
Transfer(0) D-A: 99999900000000000 (77)
|
||||||
Transfer(0) B-D: 123123 (55)
|
Transfer(0) B-D: 12312300000000000 (55)
|
||||||
|
|
||||||
// close Block:1, Batch:0
|
// close Block:1, Batch:0
|
||||||
> batchL1
|
> batchL1
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ func AddAditionalInformation(blocks []common.BlockData) {
|
|||||||
blocks[i].Block.Timestamp = time.Now().Add(time.Second * 13).UTC()
|
blocks[i].Block.Timestamp = time.Now().Add(time.Second * 13).UTC()
|
||||||
blocks[i].Block.Hash = ethCommon.BigToHash(big.NewInt(blocks[i].Block.Num))
|
blocks[i].Block.Hash = ethCommon.BigToHash(big.NewInt(blocks[i].Block.Num))
|
||||||
for j := range blocks[i].Rollup.AddedTokens {
|
for j := range blocks[i].Rollup.AddedTokens {
|
||||||
blocks[i].Rollup.AddedTokens[j].Name = "NAME" + strconv.Itoa(int(blocks[i].Rollup.AddedTokens[j].TokenID))
|
blocks[i].Rollup.AddedTokens[j].Name = "Test Token " + strconv.Itoa(int(blocks[i].Rollup.AddedTokens[j].TokenID))
|
||||||
blocks[i].Rollup.AddedTokens[j].Symbol = strconv.Itoa(int(blocks[i].Rollup.AddedTokens[j].TokenID))
|
blocks[i].Rollup.AddedTokens[j].Symbol = "TKN" + strconv.Itoa(int(blocks[i].Rollup.AddedTokens[j].TokenID))
|
||||||
blocks[i].Rollup.AddedTokens[j].Decimals = uint64(blocks[i].Rollup.AddedTokens[j].TokenID + 1)
|
blocks[i].Rollup.AddedTokens[j].Decimals = 18
|
||||||
}
|
}
|
||||||
for x := range blocks[i].Rollup.Batches {
|
for x := range blocks[i].Rollup.Batches {
|
||||||
for q := range blocks[i].Rollup.Batches[x].CreatedAccounts {
|
for q := range blocks[i].Rollup.Batches[x].CreatedAccounts {
|
||||||
|
|||||||
36
api/state.go
36
api/state.go
@@ -43,24 +43,33 @@ var bootCoordinator historydb.CoordinatorAPI = historydb.CoordinatorAPI{
|
|||||||
|
|
||||||
func (a *API) getState(c *gin.Context) {
|
func (a *API) getState(c *gin.Context) {
|
||||||
// TODO: There are no events for the buckets information, so now this information will be 0
|
// TODO: There are no events for the buckets information, so now this information will be 0
|
||||||
c.JSON(http.StatusOK, a.status)
|
a.status.RLock()
|
||||||
|
status := a.status //nolint
|
||||||
|
a.status.RUnlock()
|
||||||
|
c.JSON(http.StatusOK, status) //nolint
|
||||||
}
|
}
|
||||||
|
|
||||||
// SC Vars
|
// SC Vars
|
||||||
|
|
||||||
// SetRollupVariables set Status.Rollup variables
|
// SetRollupVariables set Status.Rollup variables
|
||||||
func (a *API) SetRollupVariables(rollupVariables common.RollupVariables) {
|
func (a *API) SetRollupVariables(rollupVariables common.RollupVariables) {
|
||||||
|
a.status.Lock()
|
||||||
a.status.Rollup = rollupVariables
|
a.status.Rollup = rollupVariables
|
||||||
|
a.status.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetWDelayerVariables set Status.WithdrawalDelayer variables
|
// SetWDelayerVariables set Status.WithdrawalDelayer variables
|
||||||
func (a *API) SetWDelayerVariables(wDelayerVariables common.WDelayerVariables) {
|
func (a *API) SetWDelayerVariables(wDelayerVariables common.WDelayerVariables) {
|
||||||
|
a.status.Lock()
|
||||||
a.status.WithdrawalDelayer = wDelayerVariables
|
a.status.WithdrawalDelayer = wDelayerVariables
|
||||||
|
a.status.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetAuctionVariables set Status.Auction variables
|
// SetAuctionVariables set Status.Auction variables
|
||||||
func (a *API) SetAuctionVariables(auctionVariables common.AuctionVariables) {
|
func (a *API) SetAuctionVariables(auctionVariables common.AuctionVariables) {
|
||||||
|
a.status.Lock()
|
||||||
a.status.Auction = auctionVariables
|
a.status.Auction = auctionVariables
|
||||||
|
a.status.Unlock()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Network
|
// Network
|
||||||
@@ -78,25 +87,27 @@ func (a *API) UpdateNetworkInfo(
|
|||||||
lastEthBlock, lastSyncBlock common.Block,
|
lastEthBlock, lastSyncBlock common.Block,
|
||||||
lastBatchNum common.BatchNum, currentSlot int64,
|
lastBatchNum common.BatchNum, currentSlot int64,
|
||||||
) error {
|
) error {
|
||||||
a.status.Network.LastSyncBlock = lastSyncBlock.Num
|
|
||||||
a.status.Network.LastEthBlock = lastEthBlock.Num
|
|
||||||
lastBatch, err := a.h.GetBatchAPI(lastBatchNum)
|
lastBatch, err := a.h.GetBatchAPI(lastBatchNum)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
a.status.Network.LastBatch = *lastBatch
|
|
||||||
a.status.Network.CurrentSlot = currentSlot
|
|
||||||
lastClosedSlot := currentSlot + int64(a.status.Auction.ClosedAuctionSlots)
|
lastClosedSlot := currentSlot + int64(a.status.Auction.ClosedAuctionSlots)
|
||||||
nextForgers, err := a.GetNextForgers(lastSyncBlock, currentSlot, lastClosedSlot)
|
nextForgers, err := a.getNextForgers(lastSyncBlock, currentSlot, lastClosedSlot)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
a.status.Lock()
|
||||||
|
a.status.Network.LastSyncBlock = lastSyncBlock.Num
|
||||||
|
a.status.Network.LastEthBlock = lastEthBlock.Num
|
||||||
|
a.status.Network.LastBatch = *lastBatch
|
||||||
|
a.status.Network.CurrentSlot = currentSlot
|
||||||
a.status.Network.NextForgers = nextForgers
|
a.status.Network.NextForgers = nextForgers
|
||||||
|
a.status.Unlock()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetNextForgers returns next forgers
|
// getNextForgers returns next forgers
|
||||||
func (a *API) GetNextForgers(lastBlock common.Block, currentSlot, lastClosedSlot int64) ([]NextForger, error) {
|
func (a *API) getNextForgers(lastBlock common.Block, currentSlot, lastClosedSlot int64) ([]NextForger, error) {
|
||||||
secondsPerBlock := int64(15) //nolint:gomnd
|
secondsPerBlock := int64(15) //nolint:gomnd
|
||||||
// currentSlot and lastClosedSlot included
|
// currentSlot and lastClosedSlot included
|
||||||
limit := uint(lastClosedSlot - currentSlot + 1)
|
limit := uint(lastClosedSlot - currentSlot + 1)
|
||||||
@@ -144,11 +155,16 @@ func (a *API) GetNextForgers(lastBlock common.Block, currentSlot, lastClosedSlot
|
|||||||
|
|
||||||
// UpdateMetrics update Status.Metrics information
|
// UpdateMetrics update Status.Metrics information
|
||||||
func (a *API) UpdateMetrics() error {
|
func (a *API) UpdateMetrics() error {
|
||||||
metrics, err := a.h.GetMetrics(a.status.Network.LastBatch.BatchNum)
|
a.status.RLock()
|
||||||
|
batchNum := a.status.Network.LastBatch.BatchNum
|
||||||
|
a.status.RUnlock()
|
||||||
|
metrics, err := a.h.GetMetrics(batchNum)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
a.status.Lock()
|
||||||
a.status.Metrics = *metrics
|
a.status.Metrics = *metrics
|
||||||
|
a.status.Unlock()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,8 +176,10 @@ func (a *API) UpdateRecommendedFee() error {
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
a.status.Lock()
|
||||||
a.status.RecommendedFee.ExistingAccount = feeExistingAccount
|
a.status.RecommendedFee.ExistingAccount = feeExistingAccount
|
||||||
a.status.RecommendedFee.CreatesAccount = createAccountExtraFeePercentage * feeExistingAccount
|
a.status.RecommendedFee.CreatesAccount = createAccountExtraFeePercentage * feeExistingAccount
|
||||||
a.status.RecommendedFee.CreatesAccountAndRegister = createAccountInternalExtraFeePercentage * feeExistingAccount
|
a.status.RecommendedFee.CreatesAccountAndRegister = createAccountInternalExtraFeePercentage * feeExistingAccount
|
||||||
|
a.status.Unlock()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ func TestNextForgers(t *testing.T) {
|
|||||||
lastBlock := tc.blocks[len(tc.blocks)-1]
|
lastBlock := tc.blocks[len(tc.blocks)-1]
|
||||||
for i := int64(0); i < tc.slots[len(tc.slots)-1].SlotNum; i++ {
|
for i := int64(0); i < tc.slots[len(tc.slots)-1].SlotNum; i++ {
|
||||||
lastClosedSlot := i + int64(api.status.Auction.ClosedAuctionSlots)
|
lastClosedSlot := i + int64(api.status.Auction.ClosedAuctionSlots)
|
||||||
nextForgers, err := api.GetNextForgers(tc.blocks[len(tc.blocks)-1], i, lastClosedSlot)
|
nextForgers, err := api.getNextForgers(tc.blocks[len(tc.blocks)-1], i, lastClosedSlot)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
for j := i; j <= lastClosedSlot; j++ {
|
for j := i; j <= lastClosedSlot; j++ {
|
||||||
for q := range nextForgers {
|
for q := range nextForgers {
|
||||||
|
|||||||
315
api/swagger.yml
315
api/swagger.yml
@@ -1852,69 +1852,161 @@ components:
|
|||||||
$ref: '#/components/schemas/PendingItems'
|
$ref: '#/components/schemas/PendingItems'
|
||||||
example:
|
example:
|
||||||
transactions:
|
transactions:
|
||||||
- L1Info:
|
|
||||||
L1orL2: L2
|
|
||||||
L2Info:
|
|
||||||
fee: 44
|
|
||||||
historicFeeUSD: 0.01
|
|
||||||
nonce: 301
|
|
||||||
amount: '301'
|
|
||||||
batchNum: 1
|
|
||||||
fromAccountIndex: hez:SCC:276
|
|
||||||
fromBJJ: hez:p_OohTzjzZnD3Sw93HQlK13DSxfD6lyvbfhh2kBsV6Z4
|
|
||||||
fromHezEthereumAddress: hez:0x0000000000000000000000000000000000000114
|
|
||||||
historicUSD: 44.72
|
|
||||||
id: '0x02000000000000000000002c'
|
|
||||||
itemId: 1
|
|
||||||
position: 4
|
|
||||||
timestamp: '2020-11-17T14:08:12.197554Z'
|
|
||||||
toAccountIndex: hez:6:276
|
|
||||||
toBJJ: hez:p_OohTzjzZnD3Sw93HQlK13DSxfD6lyvbfhh2kBsV6Z4
|
|
||||||
toHezEthereumAddress: hez:0x0000000000000000000000000000000000000114
|
|
||||||
token:
|
|
||||||
USD: 3478.67
|
|
||||||
decimals: 7
|
|
||||||
ethereumAddress: '0x0000000000000000000000000000000000000006'
|
|
||||||
ethereumBlockNum: 2
|
|
||||||
fiatUpdate:
|
|
||||||
id: 6
|
|
||||||
itemId: 7
|
|
||||||
name: Some Cool Coin
|
|
||||||
symbol: 'SCC'
|
|
||||||
type: Deposit
|
|
||||||
- L1Info:
|
- L1Info:
|
||||||
ethereumBlockNum: 1
|
ethereumBlockNum: 3
|
||||||
historicLoadAmountUSD: 269
|
historicLoadAmountUSD:
|
||||||
loadAmount: '261'
|
loadAmount: '0'
|
||||||
toForgeL1TransactionsNum: 10
|
toForgeL1TransactionsNum: 7
|
||||||
userOrigin: true
|
userOrigin: true
|
||||||
L1orL2: L1
|
L1orL2: L1
|
||||||
L2Info:
|
L2Info:
|
||||||
amount: '261'
|
amount: '88888800000000000'
|
||||||
batchNum: 1
|
batchNum: 9
|
||||||
fromAccountIndex: hez:ETH:276
|
fromAccountIndex: hez:ETH:262
|
||||||
fromBJJ: hez:p_OohTzjzZnD3Sw93HQlK13DSxfD6lyvbfhh2kBsV6Z4
|
fromBJJ: hez:Mj_xDCjfN-y3h_4hbhEdtkqnz6LFF1Cf4AV_8IoQswwh
|
||||||
fromHezEthereumAddress: hez:0x0000000000000000000000000000000000000114
|
fromHezEthereumAddress: hez:0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF
|
||||||
historicUSD:
|
historicUSD: 44.4444
|
||||||
id: '0x00000000000000000a000400'
|
id: '0x000000000000000007000300'
|
||||||
itemId: 2
|
itemId: 28
|
||||||
position: 4
|
position: 3
|
||||||
timestamp: '2020-11-17T14:08:12.197554Z'
|
timestamp: '2020-11-26T09:18:40.004749Z'
|
||||||
toAccountIndex: hez:ETH:276
|
toAccountIndex: hez:EXIT:1
|
||||||
toBJJ: hez:p_OohTzjzZnD3Sw93HQlK13DSxfD6lyvbfhh2kBsV6Z4
|
toBJJ:
|
||||||
toHezEthereumAddress: hez:0x0000000000000000000000000000000000000114
|
toHezEthereumAddress:
|
||||||
token:
|
token:
|
||||||
USD: 734.21
|
USD: 500
|
||||||
decimals: 18
|
decimals: 18
|
||||||
ethereumAddress: '0x0000000000000000000000000000000000000000'
|
ethereumAddress: '0x0000000000000000000000000000000000000000'
|
||||||
ethereumBlockNum: 0
|
ethereumBlockNum: 0
|
||||||
fiatUpdate:
|
fiatUpdate: '2020-11-26T09:18:27.034866Z'
|
||||||
id: 0
|
id: 0
|
||||||
itemId: 1
|
itemId: 1
|
||||||
name: Ether
|
name: Ether
|
||||||
symbol: ETH
|
symbol: ETH
|
||||||
|
type: ForceExit
|
||||||
|
- L1Info:
|
||||||
|
L1orL2: L2
|
||||||
|
L2Info:
|
||||||
|
fee: 123
|
||||||
|
historicFeeUSD: 2.15037380962404
|
||||||
|
nonce: 1
|
||||||
|
amount: '55555500000000000'
|
||||||
|
batchNum: 8
|
||||||
|
fromAccountIndex: hez:TKN1:264
|
||||||
|
fromBJJ: hez:Mj_xDCjfN-y3h_4hbhEdtkqnz6LFF1Cf4AV_8IoQswwh
|
||||||
|
fromHezEthereumAddress: hez:0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF
|
||||||
|
historicUSD: 23.4999765
|
||||||
|
id: '0x020000000001080000000001'
|
||||||
|
itemId: 19
|
||||||
|
position: 2
|
||||||
|
timestamp: '2020-11-26T09:18:40.004749Z'
|
||||||
|
toAccountIndex: hez:TKN1:260
|
||||||
|
toBJJ: hez:81h61cx0FKR1RXcLbHW8cZMPY8SR6yKU3ei4pmcLjpaQ
|
||||||
|
toHezEthereumAddress: hez:0x6813Eb9362372EEF6200f3b1dbC3f819671cBA69
|
||||||
|
token:
|
||||||
|
USD: 423
|
||||||
|
decimals: 18
|
||||||
|
ethereumAddress: '0x0000000000000000000000000000000000000064'
|
||||||
|
ethereumBlockNum: 2
|
||||||
|
fiatUpdate: '2020-11-26T09:18:27.04357Z'
|
||||||
|
id: 1
|
||||||
|
itemId: 2
|
||||||
|
name: Test Token 1
|
||||||
|
symbol: TKN1
|
||||||
|
type: Transfer
|
||||||
|
- L1Info:
|
||||||
|
L1orL2: L2
|
||||||
|
L2Info:
|
||||||
|
fee: 44
|
||||||
|
historicFeeUSD: 0.1973587359744
|
||||||
|
nonce: 2
|
||||||
|
amount: '66666600000000000'
|
||||||
|
batchNum: 8
|
||||||
|
fromAccountIndex: hez:ETH:259
|
||||||
|
fromBJJ: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
|
||||||
|
fromHezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
|
||||||
|
historicUSD: 33.3333
|
||||||
|
id: '0x020000000001030000000002'
|
||||||
|
itemId: 20
|
||||||
|
position: 3
|
||||||
|
timestamp: '2020-11-26T09:18:40.004749Z'
|
||||||
|
toAccountIndex: hez:EXIT:1
|
||||||
|
toBJJ:
|
||||||
|
toHezEthereumAddress:
|
||||||
|
token:
|
||||||
|
USD: 500
|
||||||
|
decimals: 18
|
||||||
|
ethereumAddress: '0x0000000000000000000000000000000000000000'
|
||||||
|
ethereumBlockNum: 0
|
||||||
|
fiatUpdate: '2020-11-26T09:18:27.034866Z'
|
||||||
|
id: 0
|
||||||
|
itemId: 1
|
||||||
|
name: Ether
|
||||||
|
symbol: ETH
|
||||||
|
type: Exit
|
||||||
|
- L1Info:
|
||||||
|
ethereumBlockNum: 3
|
||||||
|
historicLoadAmountUSD: 14099.9999859
|
||||||
|
loadAmount: '33333333300000000000'
|
||||||
|
toForgeL1TransactionsNum: 2
|
||||||
|
userOrigin: true
|
||||||
|
L1orL2: L1
|
||||||
|
L2Info:
|
||||||
|
amount: '0'
|
||||||
|
batchNum: 4
|
||||||
|
fromAccountIndex: hez:TKN1:0
|
||||||
|
fromBJJ: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
|
||||||
|
fromHezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
|
||||||
|
historicUSD:
|
||||||
|
id: '0x000000000000000002000000'
|
||||||
|
itemId: 9
|
||||||
|
position: 0
|
||||||
|
timestamp: '2020-11-26T09:18:40.004749Z'
|
||||||
|
toAccountIndex: hez:TKN1:0
|
||||||
|
toBJJ:
|
||||||
|
toHezEthereumAddress:
|
||||||
|
token:
|
||||||
|
USD: 423
|
||||||
|
decimals: 18
|
||||||
|
ethereumAddress: '0x0000000000000000000000000000000000000064'
|
||||||
|
ethereumBlockNum: 2
|
||||||
|
fiatUpdate: '2020-11-26T09:18:27.04357Z'
|
||||||
|
id: 1
|
||||||
|
itemId: 2
|
||||||
|
name: Test Token 1
|
||||||
|
symbol: TKN1
|
||||||
type: CreateAccountDeposit
|
type: CreateAccountDeposit
|
||||||
pendingItems: 38
|
- L1Info:
|
||||||
|
L1orL2: L2
|
||||||
|
L2Info:
|
||||||
|
fee: 2
|
||||||
|
historicFeeUSD: 3.87833366166246e-17
|
||||||
|
nonce: 1
|
||||||
|
amount: '11111100000000000'
|
||||||
|
batchNum: 7
|
||||||
|
fromAccountIndex: hez:TKN1:261
|
||||||
|
fromBJJ: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
|
||||||
|
fromHezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
|
||||||
|
historicUSD: 4.6999953
|
||||||
|
id: '0x020000000001050000000001'
|
||||||
|
itemId: 15
|
||||||
|
position: 2
|
||||||
|
timestamp: '2020-11-26T09:18:40.004749Z'
|
||||||
|
toAccountIndex: hez:TKN1:264
|
||||||
|
toBJJ: hez:Mj_xDCjfN-y3h_4hbhEdtkqnz6LFF1Cf4AV_8IoQswwh
|
||||||
|
toHezEthereumAddress: hez:0x2B5AD5c4795c026514f8317c7a215E218DcCD6cF
|
||||||
|
token:
|
||||||
|
USD: 423
|
||||||
|
decimals: 18
|
||||||
|
ethereumAddress: '0x0000000000000000000000000000000000000064'
|
||||||
|
ethereumBlockNum: 2
|
||||||
|
fiatUpdate: '2020-11-26T09:18:27.04357Z'
|
||||||
|
id: 1
|
||||||
|
itemId: 2
|
||||||
|
name: Test Token 1
|
||||||
|
symbol: TKN1
|
||||||
|
type: Transfer
|
||||||
|
pendingItems: 23
|
||||||
required:
|
required:
|
||||||
- transactions
|
- transactions
|
||||||
- pendingItems
|
- pendingItems
|
||||||
@@ -2335,22 +2427,37 @@ components:
|
|||||||
token:
|
token:
|
||||||
$ref: '#/components/schemas/Token'
|
$ref: '#/components/schemas/Token'
|
||||||
example:
|
example:
|
||||||
accountIndex: hez:SCC:256
|
exits:
|
||||||
balance: '2560000000'
|
- accountIndex: hez:ETH:259
|
||||||
bjj: hez:m9UXbJElX5OzHMM0IxgD3Qzhx2RJw18o-tiw8s1lnwx4
|
balance: '66666600000000000'
|
||||||
hezEthereumAddress: hez:0x00000000000000000000000000000000004Ab84F
|
batchNum: 8
|
||||||
itemId: 1
|
delayedWithdrawRequest:
|
||||||
nonce: 0
|
delayedWithdrawn:
|
||||||
token:
|
instantWithdrawn:
|
||||||
USD: 3478.93
|
itemId: 1
|
||||||
decimals: 7
|
merkleProof:
|
||||||
ethereumAddress: '0x0000000000000000000000000000000000000006'
|
Fnc: 0
|
||||||
ethereumBlockNum: 2
|
IsOld0: true
|
||||||
fiatUpdate:
|
Key: '256'
|
||||||
id: 6
|
OldKey: '256'
|
||||||
itemId: 7
|
OldValue: '256'
|
||||||
name: Some Cool Coin
|
Root: '256'
|
||||||
symbol: 'SCC'
|
Siblings:
|
||||||
|
- '0'
|
||||||
|
- '1'
|
||||||
|
- '2'
|
||||||
|
Value: '256'
|
||||||
|
token:
|
||||||
|
USD: 500
|
||||||
|
decimals: 18
|
||||||
|
ethereumAddress: '0x0000000000000000000000000000000000000000'
|
||||||
|
ethereumBlockNum: 0
|
||||||
|
fiatUpdate: '2020-11-26T09:57:29.110879Z'
|
||||||
|
id: 0
|
||||||
|
itemId: 1
|
||||||
|
name: Ether
|
||||||
|
symbol: ETH
|
||||||
|
pendingItems: 0
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
required:
|
required:
|
||||||
- itemId
|
- itemId
|
||||||
@@ -2372,55 +2479,39 @@ components:
|
|||||||
$ref: '#/components/schemas/PendingItems'
|
$ref: '#/components/schemas/PendingItems'
|
||||||
example:
|
example:
|
||||||
accounts:
|
accounts:
|
||||||
- accountIndex: hez:SCC:256
|
- accountIndex: hez:ETH:259
|
||||||
balance: '2560000000'
|
balance: '2590000000'
|
||||||
bjj: hez:m9UXbJElX5OzHMM0IxgD3Qzhx2RJw18o-tiw8s1lnwx4
|
bjj: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
|
||||||
hezEthereumAddress: hez:0x00000000000000000000000000000000004Ab84F
|
hezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
|
||||||
itemId: 1
|
itemId: 4
|
||||||
nonce: 0
|
nonce: 0
|
||||||
token:
|
token:
|
||||||
USD: 53.92
|
USD: 500
|
||||||
decimals: 7
|
decimals: 18
|
||||||
ethereumAddress: '0x0000000000000000000000000000000000000006'
|
ethereumAddress: '0x0000000000000000000000000000000000000000'
|
||||||
|
ethereumBlockNum: 0
|
||||||
|
fiatUpdate: '2020-11-26T09:53:47.444444Z'
|
||||||
|
id: 0
|
||||||
|
itemId: 1
|
||||||
|
name: Ether
|
||||||
|
symbol: ETH
|
||||||
|
- accountIndex: hez:TKN1:261
|
||||||
|
balance: '2610000000'
|
||||||
|
bjj: hez:W6x4TZOAZ9mAqdOb3Xm_hKDLspaXfEfMMN4tXOkinS-W
|
||||||
|
hezEthereumAddress: hez:0x7E5F4552091A69125d5DfCb7b8C2659029395Bdf
|
||||||
|
itemId: 6
|
||||||
|
nonce: 0
|
||||||
|
token:
|
||||||
|
USD: 423
|
||||||
|
decimals: 18
|
||||||
|
ethereumAddress: '0x0000000000000000000000000000000000000064'
|
||||||
ethereumBlockNum: 2
|
ethereumBlockNum: 2
|
||||||
fiatUpdate:
|
fiatUpdate: '2020-11-26T09:53:47.456619Z'
|
||||||
id: 6
|
id: 1
|
||||||
itemId: 7
|
itemId: 2
|
||||||
name: Some Cool Coin
|
name: Test Token 1
|
||||||
symbol: 'SCC'
|
symbol: TKN1
|
||||||
- accountIndex: hez:ACC:257
|
pendingItems: 0
|
||||||
balance: '2570000000'
|
|
||||||
bjj: hez:m9UXbJElX5OzHMM0IxgD3Qzhx2RJw18o-tiw8s1lnwx4
|
|
||||||
hezEthereumAddress: hez:0x00000000000000000000000000000000004Ab84F
|
|
||||||
itemId: 2
|
|
||||||
nonce: 0
|
|
||||||
token:
|
|
||||||
USD: 8.641969
|
|
||||||
decimals: 8
|
|
||||||
ethereumAddress: '0x0000000000000000000000000000000000000007'
|
|
||||||
ethereumBlockNum: 3
|
|
||||||
fiatUpdate: '2020-11-17T13:28:11.016998Z'
|
|
||||||
id: 7
|
|
||||||
itemId: 8
|
|
||||||
name: Another Cool Coin
|
|
||||||
symbol: 'ACC'
|
|
||||||
- accountIndex: hez:VGC:258
|
|
||||||
balance: '2580000000'
|
|
||||||
bjj: hez:m9UXbJElX5OzHMM0IxgD3Qzhx2RJw18o-tiw8s1lnwx4
|
|
||||||
hezEthereumAddress: hez:0x00000000000000000000000000000000004Ab84F
|
|
||||||
itemId: 3
|
|
||||||
nonce: 0
|
|
||||||
token:
|
|
||||||
USD: 2349.12
|
|
||||||
decimals: 9
|
|
||||||
ethereumAddress: '0x0000000000000000000000000000000000000008'
|
|
||||||
ethereumBlockNum: 4
|
|
||||||
fiatUpdate:
|
|
||||||
id: 8
|
|
||||||
itemId: 9
|
|
||||||
name: Vitalik the Great Coin
|
|
||||||
symbol: 'VGC'
|
|
||||||
pendingItems: 1
|
|
||||||
additionalProperties: false
|
additionalProperties: false
|
||||||
required:
|
required:
|
||||||
- accounts
|
- accounts
|
||||||
|
|||||||
@@ -93,7 +93,8 @@ func TestGetTokens(t *testing.T) {
|
|||||||
// Get by name
|
// Get by name
|
||||||
fetchedTokens = []historydb.TokenWithUSD{}
|
fetchedTokens = []historydb.TokenWithUSD{}
|
||||||
limit = 5
|
limit = 5
|
||||||
stringName := tc.tokens[8].Name[4:5]
|
tokenNameLen := len(tc.tokens[8].Name)
|
||||||
|
stringName := tc.tokens[8].Name[tokenNameLen-1:]
|
||||||
path = fmt.Sprintf(
|
path = fmt.Sprintf(
|
||||||
"%s?name=%s&limit=%d&fromItem=",
|
"%s?name=%s&limit=%d&fromItem=",
|
||||||
endpoint, stringName, limit,
|
endpoint, stringName, limit,
|
||||||
|
|||||||
@@ -255,7 +255,7 @@ func TestGetHistoryTxs(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Get all (no filters)
|
// Get all (no filters)
|
||||||
limit := 8
|
limit := 20
|
||||||
path := fmt.Sprintf("%s?limit=%d&fromItem=", endpoint, limit)
|
path := fmt.Sprintf("%s?limit=%d&fromItem=", endpoint, limit)
|
||||||
err := doGoodReqPaginated(path, historydb.OrderAsc, &testTxsResponse{}, appendIter)
|
err := doGoodReqPaginated(path, historydb.OrderAsc, &testTxsResponse{}, appendIter)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|||||||
Reference in New Issue
Block a user