Find file History
samparsky and Randy1Burrell Feature / Manage Unbonding locks (#303)
* added getAllDelegatorUnbondingLocks method to sdk

* updated graphql-sdk, sdk and explorer

* formatted code, removed unused statements

* added rebond & withdraw form

* fixed unbond graphql error

* updated accountdelegation query & graphql-sdk types

* updated graph-sdk

* updated sdk rebond & error messages

* updated error messages

* updated withdrawal component & error messages

* modified rebond and bond sdk methods

* added goTo method to UnbondTx component

* fix: ubondtx

* fix: change underneath text, added background color to disabled button for consistent interface

* removed unused file, updated comments

* fix: modified round to date format

* fix: unclaimedrounds, removed unused vars

* fix: metrixbox display

* fix: maxEarningsClaimsRounds

* change ux flow of withdraw and rebond LPT

* remove unused code

* added process methods

* added withdrawStakeWithUnbondLock, withdraw page

* remove log statements

* added comments to withdrawStakeWithUnbondLock

* added getDelegatorUnbondingLocks, refactor ui

* removed log statements

* fix: merge issues

* fix: mutation.js

* fix: added grapql tests
Latest commit 5ebb90e Jan 11, 2019

README.md

LivepeerJS SDK

home npm Discord coverage GitHub issues

A module for interacting with Livepeer's smart contracts. The SDK is a core dependency of most LivepeerJS packages.

Table of Contents

Installation

yarn add @livepeer/sdk

Usage

Here's a code snippet showing instantiation and basic usage of the Livepeer SDK.

import LivepeerSDK from '@livepeer/sdk'

// Or if you prefer require
// const { LivepeerSDK } = require('@livepeer/sdk')
//
// First, call the SDK factory function
// pass it any configuration options
LivepeerSDK({ ... }).then(async (sdk) => {

  // Once initialized, you can access the methods under the `rpc` namespace
  const { rpc } = sdk

  // For example, you can get the total supply of Livepeer Tokens like so
  const tokens = await rpc.getTokenTotalSupply()

  console.log(tokens)
  // => string representation of some absurdly high number, maybe "9999999999999999999999" or something like that :)
})

To use with a testnet please instantiate with the following params:

const provider = "https://rinkeby.infura.io" #or your testnet of choice
const controllerAddress = "0x37dC71366Ec655093b9930bc816E16e6b587F968"

LivepeerSDK({ provider, controllerAddress }).then(async sdk => {
  mycode...
})

The following section details the rpc API's function signatures and typedefs.

API

Table of Contents

module~exports

Livepeer SDK main module exports

default

Livepeer SDK factory function. Creates an instance of the Livepeer SDK -- an object with useful methods for interacting with Livepeer protocol smart contracts

Parameters

Examples

// Here we're naming the default export "LivepeerSDK"
import LivepeerSDK from '@livepeer/sdk'

// Call the factory function and await its Promise
LivepeerSDK().then(sdk => {
  // Your Livepeer SDK instance is now ready to use
})

Returns Promise<LivepeerSDK>

livepeer~rpc

"rpc" namespace of a Livepeer SDK instance

Examples

import LivepeerSDK from '@livepeer/sdk'

LivepeerSDK().then(({ rpc }) => {
  // Here, we're destructuring the sdk to expose only its rpc namespace
  // Now, you you are able call rpc.<method-name>()
  // All rpc method yield Promises. Their usage is further explained below.
})

getENSName

Gets the ENS name for an address. This is known as a reverse lookup. Unfortunately, users must explicitly set their own resolver. So most of the time, this method just returns an empty string More info here: (https://docs.ens.domains/en/latest/userguide.html#reverse-name-resolution)

Parameters

  • address string address to look up an ENS name for

Examples

await rpc.getENSName('0xd34db33f...')
// => string

Returns Promise<string>

getENSAddress

Gets the address for an ENS name

Parameters

  • name string ENS name to look up an address for

Examples

await rpc.getENSAddress('vitalik.eth')
// => string

Returns Promise<string>

getBlock

Gets a block by number, hash, or keyword ('earliest' | 'latest')

Parameters

Examples

await rpc.getBlock('latest')
// => {
  "number": string,
  "hash": string,
  "parentHash": string,
  "nonce": string,
  "sha3Uncles": string,
  "logsBloom": string,
  "transactionsRoot": string,
  "stateRoot": string,
  "receiptsRoot": string,
  "miner": string,
  "mixHash": string,
  "difficulty": string,
  "totalDifficulty": string,
  "extraData": string,
  "size": string,
  "gasLimit": string,
  "gasUsed": string,
  "timestamp": number,
  "transactions": Array<Transaction>,
  "transactionsRoot": string,
  "uncles": Array<Uncle>,
}

Returns Promise<Block>

getEthBalance

Gets the ETH balance for an account

Parameters

  • addr string ETH account address

Examples

await rpc.getEthBalance('0xf00...')
// => string

Returns Promise<string>

getUnbondingPeriod

Gets the unbonding period for transcoders

Examples

await rpc.getUnbondingPeriod()
// => string

Returns Promise<string>

getNumActiveTranscoders

Gets the number of active transcoders

Examples

await rpc.getNumActiveTranscoders()
// => string

Returns Promise<string>

getMaxEarningsClaimsRounds

Gets the maximum earnings for claims rounds

Examples

await rpc.getMaxEarningsClaimsRounds()
// => string

Returns Promise<string>

getTotalBonded

Gets the total amount of bonded tokens

Examples

await rpc.getTotalBonded()
// => string

Returns Promise<string>

getTokenTotalSupply

Gets the total supply of token (LTPU) available in the protocol

Examples

await rpc.getTokenTotalSupply()
// => string

Returns Promise<string>

getTokenBalance

Gets a user's token balance (LPTU)

Parameters

  • addr string user's ETH address

Examples

await rpc.getTokenBalance('0xf00...')
// => string

Returns Promise<string>

getTokenInfo

Gets general information about tokens

Parameters

  • addr string user's ETH address

Examples

await rpc.getTokenInfo()
// => TokenInfo { totalSupply: string, balance: string }

Returns Promise<TokenInfo>

transferToken

Transfers tokens (LPTU) from one account to another

Parameters

  • to string the account ETH address to send tokens to
  • amount string the amount of token to send (LPTU)
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.transferToken('0xf00...', '10')
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getFaucetAmount

The amount of LPT the faucet distributes when tapped

Examples

await rpc.getFaucetAmount()
// => string

Returns Promise<string>

getFaucetWait

How often an address can tap the faucet (in hours)

Examples

await rpc.getFaucetWait()
// => string

Returns Promise<string>

getFaucetNext

Next timestamp at which the given address will be allowed to tap the faucet

Parameters

  • addr string user's ETH address

Examples

await rpc.getFaucetNext()
// => string

Returns Promise<string>

getFaucetInfo

Info about the state of the LPT faucet

Parameters

  • addr string user's ETH address

Examples

await rpc.getFaucetInfo('0xf00...')
// => FaucetInfo {
//   amount: string,
//   wait: string,
//   next: string,
// }

Returns Promise<FaucetInfo>

getInflation

Gets the per round inflation rate

Examples

await rpc.getInflation()
// => string

Returns Promise<string>

getInflationChange

Gets the change in inflation rate per round until the target bonding rate is achieved

Examples

await rpc.getInflationChange()
// => string

Returns Promise<string>

getBroadcaster

Info about a broadcaster

Parameters

  • addr string user's ETH address

Examples

await rpc.getBroadcaster('0xf00...')
// => Broadcaster {
//   address: string,
//   deposit: string,
//   withdrawBlock: string,
// }

Returns Promise<Broadcaster>

getDelegatorStatus

The delegator status of the given address

Parameters

  • addr string user's ETH address

Examples

await rpc.getDelegatorStatus('0xf00...')
// => 'Pending' | 'Bonded' | 'Unbonded'

Returns Promise<string>

getDelegator

General info about a delegator

Parameters

  • addr string user's ETH address

Examples

await rpc.getDelegator('0xf00...')
// => Delegator {
//   allowance: string,
//   address: string,
//   bondedAmount: string,
//   delegateAddress: string,
//   delegateAmount: string,
//   fees: string,
//   lastClaimRound: string,
//   pendingFees: string,
//   pendingStake: string,
//   startRound: string,
//   status: 'Pending' | 'Bonded' | 'Unbonding' | 'Unbonded',
//   withdrawRound: string,
//   nextUnbondingLockId: string,
// }

Returns Promise<Delegator>

getTranscoderIsActive

Whether or not the transcoder is active

Parameters

  • addr string user's ETH address

Examples

await rpc.getTranscoderIsActive('0xf00...')
// => boolean

Returns Promise<boolean>

getTranscoderStatus

Gets the status of a transcoder

Parameters

  • addr string user's ETH address

Examples

await rpc.getTranscoderStatus('0xf00...')
// => 'NotRegistered' | 'Registered'

Returns Promise<string>

getTranscoderTotalStake

Gets a transcoder's total stake

Parameters

  • addr string user's ETH address

Examples

await rpc.getTranscoderTotalStake('0xf00...')
// => string

Returns Promise<string>

getTranscoderPoolMaxSize

Gets a transcoder's pool max size

Examples

await rpc.getTranscoderPoolMaxSize()
// => string

Returns Promise<string>

getTranscoder

Gets info about a transcoder

Parameters

  • addr string user's ETH address

Examples

await rpc.getTranscoder('0xf00...')
// => Transcoder {
//   active: boolean,
//   address: string,
//   rewardCut: string,
//   feeShare: string,
//   lastRewardRound: string,
//   pendingRewardCut string,
//   pendingFeeShare: string,
//   pendingPricePerSegment: string,
//   pricePerSegment: string,
//   status: 'NotRegistered' | 'Registered',
//   totalStake: string,
// }

Returns Promise<Transcoder>

getTranscoders

Gets transcoders

Examples

await rpc.getTranscoders()
// => Array<Transcoder>

Returns Array<Transcoder>

getProtocolPaused

Whether the protocol is paused

Examples

await rpc.getProtocolPaused()
// => boolean

Returns Promise<boolean>

getProtocol

Gets the protocol

Examples

await rpc.getProtocol()
// => Protocol {
paused
totalTokenSupply
totalBondedToken
targetBondingRate
transcoderPoolMaxSize
}

Returns Promise<Protocol>

getRoundLength

Gets the length of a round (in blocks)

Examples

await rpc.getRoundLength()
// => string

Returns Promise<string>

getRoundsPerYear

Gets the estimated number of rounds per year

Examples

await rpc.getRoundsPerYear()
// => string

Returns Promise<string>

getCurrentRound

Gets the number of the current round

Examples

await rpc.getCurrentRound()
// => string

Returns Promise<string>

getCurrentRoundIsInitialized

Whether or not the current round is initalized

Examples

await rpc.getCurrentRoundIsInitialized()
// => boolean

Returns Promise<boolean>

getCurrentRoundStartBlock

The block at which the current round started

Examples

await rpc.getCurrentRoundStartBlock()
// => string

Returns Promise<string>

getLastInitializedRound

The previously intitialized round

Examples

await rpc.getLastInitializedRound()
// => string

Returns Promise<string>

getCurrentRoundInfo

Gets general information about the rounds in the protocol

Examples

await rpc.getCurrentRoundInfo()
// => RoundInfo {
//   id: string,
//   initialized: boolean,
//   startBlock: string,
//   lastInitializedRound: string,
//   length: string,
// }

Returns Promise<RoundInfo>

getTotalJobs

Total jobs that have been created

Examples

await rpc.getTotalJobs()
// => string

Returns Promise<string>

getJobVerificationRate

Verification rate for jobs

Examples

await rpc.getJobVerificationRate()
// => string

Returns Promise<string>

getJobVerificationPeriod

Verification period for jobs

Examples

await rpc.getJobVerificationPeriod()
// => string

Returns Promise<string>

getJobVerificationSlashingPeriod

Slashing period for jobs

Examples

await rpc.getJobVerificationSlashingPeriod()
// => string

Returns Promise<string>

getJobFinderFee

Finder fee for jobs

Examples

await rpc.getJobFinderFee()
// => string

Returns Promise<string>

getJobsInfo

Gets general info about the state of jobs in the protocol

Examples

await rpc.getJobsInfo()
// => JobsInfo {
//   total: string,
//   verificationRate: string,
//   verificationPeriod: string,
//   verificationSlashingPeriod: string,
//   finderFee: string,
// }

Returns Promise<JobsInfo>

getJob

Gets a job by id

Parameters

Examples

await rpc.getJob('1337')
// => Job {
//   id: string,
//   streamId: string,
//   transcodingOptions: Array<JobProfile>
//   transcoder: string,
//   broadcaster: string,
// }

Returns Promise<Job>

getJobs

Gets a list of jobs

Parameters

  • $0 Object (optional, default {})
    • $0.to
    • $0.from
    • $0.blocksAgo (optional, default 100*10000)
    • $0.filters ...any

Examples

await rpc.getJobs()
// => Array<Job>

Returns Array<Job>

tapFaucet

Gets LPT from the faucet

Parameters

  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.tapFaucet('1337')
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

initializeRound

Initializes the round

Parameters

  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.initializeRound()
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

claimEarnings

Claims token and eth earnings from the sender's lastClaimRound + 1 through a given endRound

Parameters

  • endRound string the round to claim earnings until
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.claimEarnings()
// => string

Returns string

estimateGas

Gets the estimated amount of gas to be used by a smart contract method.

Parameters

  • contractName string : name of contract containing method you wish to find gas price for. methodName: name of method on contract. methodArgs: array of argument to be passed to the contract in specified order. tx: (optioanl){ from: address - 0x..., gas: number, value: (optional) number or string containing number }
  • methodName string
  • methodArgs Array
  • tx (optional, default config.defaultTx)

Examples

await rpc.estimateGas('BondingManager', 'bond', [10, '0x00.....'])
// => 33454

Returns Promise<number> containing estimated gas price

unbond

Unbonds LPT from an address

Parameters

  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.unbond()
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

setupTranscoder

Sets transcoder parameters

Parameters

  • rewardCut string the block reward cut you wish to set
  • feeShare string the fee share you wish to set
  • pricePerSegment string the price per segment you wish to set
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.setupTranscoder('10', '10', '5')
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getTargetBondingRate

Get target bonding rate

Examples

await rpc.getTargetBondingRate()
// => string

Returns Promise<string>

deposit

Deposits ETH for broadcasting

Parameters

  • amount string amount of ETH to deposit
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.deposit('100')
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

withdraw

Withdraws deposited ETH

Parameters

  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.withdraw()
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

withdrawStake

Withdraws earned token (Transfers a sender's delegator bondedAmount to their tokenBalance)

Parameters

  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.withdrawStake()
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns TxReceipt

withdrawFees

Withdraws earned fees (Transfers a sender's delegator fees to their ethBalance)

Parameters

  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.withdrawFees()
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns TxReceipt

createJob

Creates a job

Parameters

  • streamId string the stream id for the job
  • profiles Array<string> a list of profiles to transcode the job into (optional, default [// default profiles 'P240p30fps4x3','P360p30fps16x9'])
  • maxPricePerSegment string the maximum LPTU price the broadcaster is willing to pay per segment
  • tx TxConfig an object specifying the from and gas values of the transaction (optional, default config.defaultTx)

Examples

await rpc.createJob('foo', [P240p30fps4x3', 'P360p30fps16x9'], '5')
// => TxReceipt {
//   transactionHash: string,
//   transactionIndex": BN,
//   blockHash: string,
//   blockNumber: BN,
//   cumulativeGasUsed: BN,
//   gasUsed: BN,
//   contractAddress: string,
//   logs: Array<Log {
//     logIndex: BN,
//     blockNumber: BN,
//     blockHash: string,
//     transactionHash: string,
//     transactionIndex: string,
//     address: string,
//     data: string,
//     topics: Array<string>
//   }>
// }

Returns Promise<TxReceipt>

getDelegatorUnbondingLock

Get an unbonding lock for a delegator

Parameters

  • addr string delegator's ETH address
  • unbondingLockId string unbonding lock ID

Examples

await rpc.getDelegatorUnbondingLock('0xf00...', 1)
// => UnbondingLock {
//   id: string,
//   delegator: string,
//   amount: string,
//   withdrawRound: string
// }

Returns Promise<UnbondingLock>

ABIPropDescriptor

ABI property descriptor

Type: Object

Properties

ContractArtifact

Mostly "truffle-style" ABI artifacts but no bytecode/network properties required

Type: Object

Properties

LivepeerSDKOptions

SDK configuration options

Type: Object

Properties

  • controllerAddress string? The address of the delpoyed Controller contract
  • provider string? The ETH http provider for rpc methods
  • gas number? the amount of gas to include with transactions by default
  • artifacts Object<string, ContractArtifact> an object containing contract name -> ContractArtifact mappings
  • privateKeys Object<string, string> an object containing public -> private key mappings. Should be specified if using the SDK for transactions without MetaMask (via CLI, etc)
  • account (string | number) the account that will be used for transacting and data-fetching. Can be one of the publicKeys specified in the privateKeys option or an index of an account available via MetaMask

LivepeerSDK

An object containing contract info and utility methods for interacting with the Livepeer protocol's smart contracts

Type: Object

Properties

  • config Object<string, any> this prop is mostly for debugging purposes and could change a lot in the future. Currently, it contains the following props: abis, accounts, contracts, defaultTx, eth
  • constants Object<string, any> Exposes some constant values. Currently, it contains the following props: ADDRESS_PAD, DELEGATOR_STATUS, EMPTY_ADDRESS, TRANSCODER_STATUS, VIDEO_PROFILES, VIDEO_PROFILE_ID_SIZE
  • create Function same as the createLivepeerSDK function
  • events Object<string, Object> Object mapping an event name -> contract event descriptor object
  • rpc Object<string, Function> contains all of the rpc methods available for interacting with the Livepeer protocol
  • utils Object<string, Function> contains utility methods. Mostly here just because. Could possibly be removed or moved into its own module in the future

TokenInfo

An object containing the total token supply and a user's account balance.

Type: Object

Properties

  • totalSupply string total supply of token available in the protocol (LPTU)
  • balance string user's token balance (LPTU)

TxConfig

Transaction config object

Type: Object

Properties

  • from string the ETH account address to sign the transaction from
  • gas number the amount of gas to include in the transaction

TxReceipt

Transaction receipt

Type: Object

Properties

  • transactionHash string the transaction hash
  • transactionIndex BN the transaction index
  • blockHash string the transaction block hash
  • blockNumber BN the transaction block number
  • cumulativeGasUsed BN the cumulative gas used in the transaction
  • gasUsed BN the gas used in the transaction
  • contractAddress string the contract address of the transaction method
  • logs Array<Log> an object containing logs that were fired during the transaction

Protocol

A Protocol struct

Type: Object

Properties

  • paused boolean the protocol paused or not
  • totalTokenSupply string total token supply for protocol
  • totalBondedToken string total bonded token for protocol
  • targetBondingRate string target bonding rate for protocol
  • transcoderPoolMaxSize string transcoder pool max size

FaucetInfo

Information about the status of the LPT faucet

Type: Object

Properties

  • amount string the amount distributed by the faucet
  • wait string the faucet request cooldown time
  • next string the next time a valid faucet request may be made

Broadcaster

A Broadcaster struct

Type: Object

Properties

  • address string the ETH address of the broadcaster
  • deposit string the amount of LPT the broadcaster has deposited
  • withdrawBlock string the next block at which a broadcaster may withdraw their deposit

Delegator

A Delegator struct

Type: Object

Properties

  • allowance string the delegator's LivepeerToken approved amount for transfer
  • address string the delegator's ETH address
  • bondedAmount string The amount of LPTU a delegator has bonded
  • delegateAddress string the ETH address of the delegator's delegate
  • delegatedAmount string the amount of LPTU the delegator has delegated
  • fees string the amount of LPTU a delegator has collected
  • lastClaimRound string the last round that the delegator claimed reward and fee pool shares
  • pendingFees string the amount of ETH the delegator has earned up to the current round
  • pendingStake string the amount of token the delegator has earned up to the current round
  • startRound string the round the delegator becomes bonded and delegated to its delegate
  • status string the delegator's status
  • withdrawableAmount string the amount of LPTU a delegator can withdraw
  • withdrawRound string the round the delegator can withdraw its stake
  • nextUnbondingLockId string the next unbonding lock ID for the delegator

Transcoder

A Transcoder struct

Type: Object

Properties

  • active boolean whether or not the transcoder is active
  • address string the transcoder's ETH address
  • rewardCut string % of block reward cut paid to transcoder by a delegator
  • feeShare string % of fees paid to delegators by transcoder
  • lastRewardRound string last round that the transcoder called reward
  • pendingRewardCut string pending block reward cut for next round if the transcoder is active
  • pendingFeeShare string pending fee share for next round if the transcoder is active
  • pendingPricePerSegment string pending price per segment for next round if the transcoder is active
  • pricePerSegment string price per segment for a stream (LPTU)
  • status string the transcoder's status
  • totalStake string total tokens delegated toward a transcoder (including their own)

UnbondingLock

An UnbondingLock struct

Type: Object

Properties

  • id string the unbonding lock ID
  • delegator string the delegator's ETH address
  • amount string the amount of tokens being unbonded
  • withdrawRound string the round at which unbonding period is over and tokens can be withdrawn

RoundInfo

An object containing information about the current round

Type: Object

Properties

  • id string the number of the current round
  • initialized boolean whether or not the current round is initialized
  • startBlock string the start block of the current round
  • lastInitializedRound string the last round that was initialized prior to the current
  • length string the length of rounds

Block

An object containing information about an Ethereum block

Type: Object

Properties

  • number string block number
  • hash string block hash
  • parentHash string parent has of the block
  • nonce string block nonce
  • sha3Uncles string block sha3 uncles
  • logsBloom string logss bloom for the block
  • transactionsRoot string block transaction root hash
  • stateRoot string block state root hash
  • receiptsRoot string block receipts root hash
  • miner string block miner hash
  • mixHash string block mixHash
  • difficulty string difficulty int
  • totalDifficulty string total difficulty int
  • extraData string hash of extra data
  • size string block size
  • gasLimit string block gas limit
  • gasUsed string gas used in block
  • timestamp number block timestamp
  • transactions string block transactions hash
  • uncles string block uncles hash
  • transactions Array<Transaction> transactions in the block
  • transactionsRoot string root transaction hash
  • uncles Array<Uncle> block uncles

JobsInfo

An object containing overview information about the jobs in the protocol

Type: Object

Properties

  • total string the total number of jobs created
  • verificationRate boolean the verification rate for jobs
  • verificationPeriod string the verification period for jobs
  • verificationSlashingPeriod string the slashing period for jobs
  • finderFee string the finder fee for jobs

Job

A Job struct

Type: Object

Properties

  • jobId string the id of the job
  • streamId string the job's stream id
  • transcodingOptions Array<TranscodingProfile> transcoding profiles
  • transcoder string? the ETH address of the assigned transcoder
  • broadcaster string the ETH address of the broadcaster who created the job

Log

An object representing a contract log

Type: Object

Properties

  • logIndex BN the log index
  • blockNumber BN the log block number
  • blockHash string the log block hash
  • transactionHash string the log's transaction hash
  • transactionIndex BN the log's transaction index
  • address string the log's address
  • data string the log's data
  • topics Array<string> the log's topics