Relayers

Get relayer data

POST https://api.octusbridge.io/v1/relays_pages/relay_info

{
  "frozenStake": "258917.752572214000",
  "untilFrozen": 1661463628000,
  "latestReward": "0",
  "totalReward": "8800.73179149",
  "successfulRounds": 18,
  "totalCountRounds": 20,
  "relayTotalConfirmed": 7291,
  "potentialTotalConfirmed": 8403,
  "evmStats": [
    {
      "chainId": 1,
      "relayConfirmed": 1801,
      "potentialConfirmed": 2047
    },
    ...
    {
      "chainId": 43114,
      "relayConfirmed": 106,
      "potentialConfirmed": 123
    }
  ]
} 

This function is used to return information about a specific relayer based on its address.

It can be used anywhere where details about a specific relayer is needed such as details about events and their confirmation, validating rounds, rewards, stake etc.

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/relay_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relay_info`,
        data: {
            relayAddress: req.body.relayAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})​

Get relayer round info

POST https://api.octusbridge.io/v1/relays_pages/relay_round_info

{
  "relayAddress": "0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557",
  "roundNum": 15,
  "stake": "258917.752572214000",
  "eventsConfirmed": 661,
  "tonToEthUsdt": "5567068.9741",
  "ethToTonUsdt": "6119978.1405",
  "relayPlace": 1,
  "eventsConfirmedShare": "0.9511",
  "totalRoundConfirms": 695,
  "roundAddress": "0:20e866e80bb8ded0ad14f7317a58b05d378fd108306aafed64650465cd68b19e",
  "startTime": 1653999926000,
  "endTime": 1654604726000,
  "evmStats": [
   {
   ...
  {
      "chainId": 250,
      "relayConfirmed": 7,
      "potentialConfirmed": 7
    },
    {
      "chainId": 43114,
      "relayConfirmed": 16,
      "potentialConfirmed": 17
    }
  ]
}

This function use to get validation round info.

It can be used for showing a relayer’s efforts in one specific round. Following data about the relayer’s performance based on the round number can be displayed: How much a relayer staked to become a relayer, number of events he confirmed, volume from all the transfers relayer validated happened from everscale to ethereum network and vice versa shown in USDTs, round address, start and end time of the round.

Request parameters:

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/relay_round_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relay_round_info`,
        data: {
            relayAddress: req.body.relayAddress,
            roundNum: req.body.roundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get relayers round info

POST https://api.octusbridge.io/v1/relays_pages/relays_round_info

{
  "relays": [
    {
      "relayAddress": "0:ef79b4aac06c33ab3435943d196de9ba9ee48a3e4572c86a8ad3a2bf84b4f767",
      "roundNum": 15,
      "stake": "100000",
      "eventsConfirmed": 661,
      "tonToEthUsdt": "5567068.9741",
      "ethToTonUsdt": "6485680.9782",
      "relayPlace": null,
      "eventsConfirmedShare": "0.9511",
      "totalRoundConfirms": 695,
      "roundAddress": "0:20e866e80bb8ded0ad14f7317a58b05d378fd108306aafed64650465cd68b19e",
      "startTime": 1653999926000,
      "endTime": 1654604726000,
      "evmStats": []
    },
    ...
   {
      "relayAddress": "0:a2848bfafd47a43ac029e3c55c7241804be7fe3331ed3e965862431a78f528e1",
      "roundNum": 15,
      "stake": "100000",
      "eventsConfirmed": 630,
      "tonToEthUsdt": "5567068.9741",
      "ethToTonUsdt": "5732605.3024",
      "relayPlace": null,
      "eventsConfirmedShare": "0.9065",
      "totalRoundConfirms": 695,
      "roundAddress": "0:20e866e80bb8ded0ad14f7317a58b05d378fd108306aafed64650465cd68b19e",
      "startTime": 1653999926000,
      "endTime": 1654604726000,
      "evmStats": []
    }
  ],
  "totalCount": 23
}

This function returns list of relayers and details about them based on the round number they are part of.

Can be used for listing all or certain number of relayers when it comes to one validation round. Some of the details about the relayers are number of confirmed events and the share per event, relay’s address, list of events, place of a relayer and also info about the round such as start and end time, round number and address, etc.

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/relays_round_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relays_round_info`,
        data: {
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            roundNum: req.body.roundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get all validation rounds info

POST https://api.octusbridge.io/v1/relays_pages/all_relay_ronds_info

{
  "relays": [
    {
      "relayAddress": "0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557",
      "roundNum": 1,
      "stake": "244636",
      "eventsConfirmed": 97,
      "tonToEthUsdt": "573326.1229",
      "ethToTonUsdt": "401075.7860",
      "relayPlace": null,
      "eventsConfirmedShare": "0.8981",
      "totalRoundConfirms": 108,
      "roundAddress": "0:77f4e7eb93d7fb3432f297782f2cd2e5fb2a62bb05d8a9590ea54c6ab954254d",
      "startTime": 1645303857000,
      "endTime": 1645908657000,
      "evmStats": []
    },
    ...
   {
      "relayAddress": "0:daacff0f136da1d5c9fa73200d481362c44756b0ff7d083ee02e95f00a078557",
      "roundNum": 10,
      "stake": "244636",
      "eventsConfirmed": 529,
      "tonToEthUsdt": "5204152.7479",
      "ethToTonUsdt": "4509235.2178",
      "relayPlace": null,
      "eventsConfirmedShare": "0.8773",
      "totalRoundConfirms": 603,
      "roundAddress": "0:cc312267aa40b7f9a56ce1aad46dbca5088c2d30ee1ba88555d2e97941ac9816",
      "startTime": 1650975926000,
      "endTime": 1651580726000,
      "evmStats": []
    }
  ],
  "totalCount": 18
}

This function returns all validation relay rounds in which specified relayer took part in.

It can be used for monitoring a relayer's activity and history by retrieving data such as details about events and share per event, round details, relayer’s place and stake, etc. only by inputting relayer’s address.

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/all_relay_rounds_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/all_relay_rounds_info`,
        data: {
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            userAddress: req.body.userAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get validation round info

POST https://api.octusbridge.io/v1/relays_pages/round_info

{
  "roundNum": 10,
  "totalStake": "2549112.692146446000",
  "totalStakeChange": "8.5100",
  "averageRelayStake": "106213.02883900",
  "averageRelayStakeChange": "-0.5300",
  "eventsConfirmed": 603,
  "relaysCount": 24,
  "relaysCountChange": "9.0900",
  "tonToEthUsdt": "6007826.4910",
  "ethToTonUsdt": "5204152.7479",
  "evmStats": [
    {
      "chainId": 1,
      "relayConfirmed": 0,
      "potentialConfirmed": 142
    },
    ...
     {
      "chainId": 43114,
      "relayConfirmed": 0,
      "potentialConfirmed": 7
    }
  ]
}

This function returns basic information about relayers based on their addresses, round number and stake.

It can be used for filtering rounds based on their number and showing information about them such as stake and stake changes, information about events, relayers and change in number of them, amount of USDTs transferred through the round duration.

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/round_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/round_info`,
        data: {
            roundNum: req.body.roundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })

})​

Get relayers info

POST https://api.octusbridge.io/v1/relays_pages/search/relays

{
  "relays": [
    {
      "relayAddress": "0:099341ccbe3f2db59432fc1cc794773b9da06048d14e43ae24ae224dd768145d",
      "stake": "100000",
      "slashed": false,
      "currentRound": true,
      "successfulRounds": 10,
      "totalRounds": 10,
      "createdAt": 1651074897000,
      "relayTotalConfirmed": 4053,
      "potentialTotalConfirmed": 4746
    },
  ...
  {
      "relayAddress": "0:92beea3fa73ba9fa2420442eb89c7c16fdb899e9d4c10f84e34f13f651beb25f",
      "stake": "100000",
      "slashed": false,
      "currentRound": true,
      "successfulRounds": 20,
      "totalRounds": 20,
      "createdAt": 1645013257000,
      "relayTotalConfirmed": 7894,
      "potentialTotalConfirmed": 8924
    }
  ],
  "totalCount": 27
}

This function **** returns basic information about relayers based on their addresses, round number and stake.

Request parameters

Required body parameters:

Parameters used for the test:

Response fields explanation

Example

app.post('/relays_pages/search/relays', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/search/relays`,
        data: {
            createdAtGe: req.body.createdAtGe,
            createdAtLe: req.body.createdAtLe,
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            relayAddresses: req.body.relayAddresses,
            roundNum: req.body.roundNum,
            stakeGe: req.body.stakeGe,
            stakeLe: req.body.stakeLe,
            transferContractAddress: req.body.transferContractAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get relayer

POST https://api.octusbridge.io/v1/relays_pages/search/relays_events

{
  "relays": [
    {
      "transferKind": "ethtoton",
      "contractAddress": "0:91b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9",
      "chainId": 1,
      "tokenAddress": "0:a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2",
      "from": "0xcbefe3344284444ac8141c930207b8ff82a3177e",
      "to": "0:1fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3",
      "amount": "90000",
      "timestamp": 1655983612000
    },
    ...
     {
      "transferKind": "ethtoton",
      "contractAddress": "0:91b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9",
      "chainId": 1,
      "tokenAddress": "0:a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2",
      "from": "0xcbefe3344284444ac8141c930207b8ff82a3177e",
      "to": "0:1fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3",
      "amount": "90000",
      "timestamp": 1655983612000
    }
  ],
  "totalCount": 18
}

This function returns details about relayer’s events based on the chain id of the event, kind of transfer, receiver’s address, sender’s address, token address, relayer’s address, contract’s address, round number.

It can be used for filtering all the events based on the required parameters and displaying them in the list form along with information such as amount transferred, chain id, sender’s address, receiver’s address, token address etc.

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/search/relays_events', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/search/relays_events`,
        data: {
            amountGe: req.body.amountGe,
            amountLe: req.body.amountLe,
            chainId: req.body.chainId,
            ethUserAddress: req.body.ethUserAddress,
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            relayAddress: req.body.relayAddress,
            roundNum: req.body.roundNum,
            timestampGe: req.body.timestampGe,
            timestampLe: req.body.timestampLe,
            tokenAddress: req.body.tokenAddress,
            tonUserAddress: req.body.tonUserAddress,
            transferContractAddress: req.body.transferContractAddress,
            transferKind: req.body.transferKind
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get global relayer

POST https://api.octusbridge.io/v1/relays_pages/search/global_relays_events

{
  "relays": [
    {
      "transferKind": "ethtoton",
      "contractAddress": "0:91b879d842d2292db57abd10d1cd6e83959dd27fb70189d02032314c0de542a9",
      "chainId": 1,
      "tokenAddress": "0:a519f99bb5d6d51ef958ed24d337ad75a1c770885dcd42d51d6663f9fcdacfb2",
      "from": "0xcbefe3344284444ac8141c930207b8ff82a3177e",
      "to": "0:1fcdda0bdb6cc28476575f1617949188fb9f29d35b9f86217438baf3519058c3",
      "amount": "90000",
      "timestamp": 1655983612000
    }
  ],
  "totalCount": 1
}

This function returns details about relayer’s events based on the chain id of the event, kind of transfer, receiver’s address, sender’s address, token address, relayer’s address, contract’s address, round number.

It can be used for filtering all the events based on the required parameters and displaying them in the list form along with information such as amount transferred, chain id, sender’s address, receiver’s address, token address etc.

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/search/global_relays_events', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/search/global_relays_events`,
        data: {
            amountGe: req.body.amountGe,
            amountLe: req.body.amountLe,
            chainId: req.body.chainId,
            ethUserAddress: req.body.ethUserAddress,
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            roundNum: req.body.roundNum,
            timestampGe: req.body.timestampGe,
            timestampLe: req.body.timestampLe,
            tokenAddress: req.body.tokenAddress,
            tonUserAddress: req.body.tonUserAddress,
            transferContractAddress: req.body.transferContractAddress,
            transferKind: req.body.transferKind
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get rounds calendar

POST https://api.octusbridge.io/v1/relays_pages/rounds_calendar

[
  {
    "roundAddress": "0:77f4e7eb93d7fb3432f297782f2cd2e5fb2a62bb05d8a9590ea54c6ab954254d",
    "roundNum": 1,
    "startTime": 1645303857000,
    "endTime": 1645908657000,
    "electionStartTime": 1644958278000,
    "electionEndTime": 1645131078000
  },
  ...
  {
    "roundAddress": "0:547c234e01d17b33331ed0f1270598906bcfec03d55d414cafc69e6118258da5",
    "roundNum": 9,
    "startTime": 1650371126000,
    "endTime": 1650975926000,
    "electionStartTime": 1650025543000,
    "electionEndTime": 1650198343000
  }
]

This fuction returns data about the rounds between from and to rounds numbers.

It can be used as round’s calendar where data about election start and end time, round’s start and end time, number and address for each round will be displayed

Request parameters

Required body parameters:

Response fields explanation

Example

app.post('/relays_pages/rounds_calendar', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/rounds_calendar`,
        data: {
            fromRoundNum: req.body.fromRoundNum,
            toRoundNum: req.body.toRoundNum
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Get validation rounds info

POST https://api.octusbridge.io/v1/relays_pages/relays_pages/relay_rounds_info

{
  "relays": [
    {
      "roundAddress": "0:cc312267aa40b7f9a56ce1aad46dbca5088c2d30ee1ba88555d2e97941ac9816",
      "roundNum": 10,
      "stake": "244636",
      "eventsConfirmed": 529,
      "toTonUsdt": "4509235.2178",
      "toTonUsdtShare": "0.4642",
      "fromTonUsdt": "5204152.7479",
      "fromTonUsdtShare": "0.5358",
      "startTime": 1650975926000,
      "endTime": 1651580726000,
      "eventsShare": "0.8773"
    }
  ],
  "totalCount": 0
}

This function returns information about the relayerabout relayer relay taking part in the specific round based on itsit’s address and round number.

It can be used for filtering where relayer’s and round’s information, for the chosen round, such as round end, round start, events information, amount of assets transferred through the round etc., will be displayed.

Request parameters

Required body parameters:

Response fields explonation

Example

app.post('/relays_pages/relay_rounds_info', (req, res) => {
    axios({
        method: 'post',
        url: `${apiUrl}/relays_pages/relay_rounds_info`,
        data: {
            limit: req.body.limit,
            offset: req.body.offset,
            ordering: req.body.ordering,
            roundNum: req.body.roundNum,
            userAddress: req.body.userAddress
        }
      })
    .then(function (response) {
        res.send(response.data)
    })
    .catch(function(error){
        console.error(error)
        res.send('Error')
    })
})

Last updated