Escrow SDK
A class that lets you create and manage Kleros Escrow transactions.
This class lets you create and manage Kleros Escrow transactions. Use this Kleros Escrow SDK to easily integrate on-chain escrow features on your platform.
npm i @kleros/componentsimport KlerosEscrow from "@kleros/components/kleros-escrow";
//...Methods
constructor
constructorConstructs a KlerosEscrow instance.
Params (web3, archon)
(web3, archon)web3*
Web3
A Web3 instance.
Returns (KlerosEscrow)
(KlerosEscrow)A KlerosEscrow instance.
klerosEscrow.getAccount
klerosEscrow.getAccountReturns (Promise<object>)
(Promise<object>)A promise for the current account of the set Web3 instance or the one chosen in the prompt to connect when none is set.
klerosEscrow.setCourtAndCurrency
klerosEscrow.setCourtAndCurrencySets the court and currency that escrow transactions will use.
Params (court = "blockchain-non-technical", currency)
(court = "blockchain-non-technical", currency)court
string
The court that will rule over any disputes arising from a transaction. "general" or "blockchain-non-technical", or a custom arbitrable transaction contract address.
"blockchain-non-technical"
currency
string
The address of the token the transaction should be paid in. Leave this undefined to use ETH.
Returns (Promise)
(Promise)A promise that resolves when the court and currency are set.
klerosEscrow.upload
klerosEscrow.uploadUploads files to Kleros' IPFS node.
Params (fileName, bufferOrJSON)
(fileName, bufferOrJSON)fileName*
string
The file name of the file to upload.
bufferOrJSON*
`string
Buffer
object`
The file to upload.
Returns (Promise<string>)
(Promise<string>)A promise for the uploaded's file IPFS URI.
klerosEscrow.getTransactions
klerosEscrow.getTransactionsGets the list of transactions an address is involved in.
Params (address)
(address)address
string
The address to get transactions for.
(await web3.eth.getAccounts())[0]
Returns (Promise<object[]>)
(Promise<object[]>)A promise for the list of transactions.
klerosEscrow.isSender
klerosEscrow.isSenderChecks if the current Web3 account is the sender of a transaction.
Params (transactionID)
(transactionID)transactionID*
string
The ID of the transaction.
Returns (Promise<boolean>)
(Promise<boolean>)A promise for the answer.
klerosEscrow.createTransaction
klerosEscrow.createTransactionCreates an escrow transaction.
Params (amount, recipient, timeout, metaEvidence)
(amount, recipient, timeout, metaEvidence)amount*
`number
string
BN`
The amount escrowed.
recipient*
string
The address of the recipient.
timeout*
`number
string
BN`
The time in seconds until the transaction becomes executable.
metaEvidence*
object
The meta evidence object for any potential disputes arising. You can add an additional file property with a buffer, string, or object, and it will be uploaded to IPFS and fileURI will be set appropiately.
Returns (Promise<object>)
(Promise<object>)A promise for the transaction's creation transaction.
klerosEscrow.pay
klerosEscrow.payPays an amount of an escrowed transaction the current account is a sender in, to the recipient.
Params (transactionID, amount)
(transactionID, amount)transactionID*
string
The ID of the transaction.
amount*
`number
string
BN`
The amount to pay.
Returns (Promise<object>)
(Promise<object>)A promise for the payment's transaction.
klerosEscrow.reimburse
klerosEscrow.reimbursePays an amount of an escrowed transaction the current account is a recipient in, to the sender.
Params (transactionID, amount)
(transactionID, amount)transactionID*
string
The ID of the transaction.
amount*
`number
string
BN`
The amount to pay.
Returns (Promise<object>)
(Promise<object>)A promise for the payment's transaction.
klerosEscrow.executeTransaction
klerosEscrow.executeTransactionExecutes a transaction where the timeout has passed.
Params (transactionID)
(transactionID)transactionID*
string
The ID of the transaction.
Returns (Promise<object>)
(Promise<object>)A promise for the execution's transaction.
klerosEscrow.timeout
klerosEscrow.timeoutTimesout the other party of an escrowed transaction the current account is involved in. This is for when they miss the deadline to pay arbitration fees.
Params (transactionID)
(transactionID)transactionID*
string
The ID of the transaction.
Returns (Promise<object>)
(Promise<object>)A promise for the timeout's transaction.
klerosEscrow.payArbitrationFee
klerosEscrow.payArbitrationFeePays arbitration fees for a transaction the current account is involved in.
Params (transactionID, amount)
(transactionID, amount)transactionID*
string
The ID of the transaction.
amount*
`number
string
BN`
The amount to pay.
Returns (Promise<object>)
(Promise<object>)A promise for the payment's transaction.
klerosEscrow.submitEvidence
klerosEscrow.submitEvidenceUploads evidence to Kleros' IPFS node and submits it for a transaction.
Params (transactionID, evidence)
(transactionID, evidence)transactionID*
string
The ID of the transaction.
evidence*
object
The evidence object for any potential disputes arising. You can add an additional file property with a buffer, string, or object, and it will be uploaded to IPFS and fileURI will be set appropiately.
Returns (Promise<object>)
(Promise<object>)A promise for the submission's transaction.
Last updated