Source: validation/schemas/ETH.js

  1. /**
  2. * @file Exposes validation schemas for ETH interface
  3. * @author Ivan Violentov <ivan.violentov@jibrel.network>
  4. */
  5. import Joi from 'joi-browser'
  6. import validationRules, { generalETHKeys } from '../validationRules'
  7. const sendTransaction = Joi.object().keys({
  8. ...generalETHKeys,
  9. privateKey: validationRules.privateKey.required(),
  10. to: validationRules.address.required(),
  11. value: validationRules.value.required(),
  12. gasLimit: validationRules.gasLimit,
  13. gasPrice: validationRules.gasPrice,
  14. nonce: validationRules.nonce,
  15. data: validationRules.data,
  16. })
  17. const getBalance = Joi.object().keys({
  18. ...generalETHKeys,
  19. address: validationRules.address.required(),
  20. defaultBlock: validationRules.address,
  21. })
  22. const getCode = Joi.object().keys({
  23. ...generalETHKeys,
  24. address: validationRules.address.required(),
  25. defaultBlock: validationRules.address,
  26. })
  27. const getBlockNumber = Joi.object().keys({
  28. ...generalETHKeys,
  29. })
  30. const getBlock = Joi.object().keys({
  31. ...generalETHKeys,
  32. blockId: validationRules.blockId,
  33. returnTransactionObjects: validationRules.returnTransactionObjects,
  34. })
  35. const getTransaction = Joi.object().keys({
  36. ...generalETHKeys,
  37. transactionHash: validationRules.transactionHash.required(),
  38. })
  39. const getTransactionReceipt = Joi.object().keys({
  40. ...generalETHKeys,
  41. transactionHash: validationRules.transactionHash.required(),
  42. })
  43. const getLogsFilter = Joi.object().keys({
  44. ...generalETHKeys,
  45. options: validationRules.logsOptions,
  46. })
  47. const getPastLogs = Joi.object().keys({
  48. ...generalETHKeys,
  49. options: validationRules.logsOptions,
  50. })
  51. const estimateGas = Joi.object().keys({
  52. ...generalETHKeys,
  53. to: validationRules.address.required(),
  54. value: validationRules.value.required(),
  55. data: validationRules.data,
  56. })
  57. const getGasPrice = Joi.object().keys({
  58. ...generalETHKeys,
  59. })
  60. const getNonce = Joi.object().keys({
  61. ...generalETHKeys,
  62. address: validationRules.address.required(),
  63. defaultBlock: validationRules.blockId,
  64. })
  65. export default {
  66. getCode,
  67. getBlock,
  68. getNonce,
  69. getBalance,
  70. getPastLogs,
  71. estimateGas,
  72. getGasPrice,
  73. getLogsFilter,
  74. getBlockNumber,
  75. getTransaction,
  76. sendTransaction,
  77. getTransactionReceipt,
  78. }