contract-notifier/dapp-schema.js

42 lines
1015 B
JavaScript
Raw Normal View History

2019-11-26 11:49:42 -04:00
const Joi = require("@hapi/joi");
module.exports = Joi.object({
from: [
Joi.object({
name: Joi.string(),
email: Joi.string().email()
}),
Joi.string().email()
],
templates: Joi.object({
2019-11-26 19:07:17 -04:00
subscribe: Joi.string(),
2019-11-26 11:49:42 -04:00
contracts: Joi.object().pattern(
Joi.string().pattern(/^0x[0-9A-Za-z]{40}$/),
Joi.object().pattern(
2019-11-27 10:48:38 -04:00
Joi.string(),
Joi.object({
ABI: Joi.object({
name: Joi.string(),
type: Joi.string().pattern(/^event$/),
inputs: Joi.array().items(
Joi.object({
indexed: Joi.bool(),
name: Joi.string(),
type: Joi.string()
})
)
}).unknown(),
index: [Joi.string(), Joi.func().arity(3)],
template: Joi.string(),
data: Joi.func()
.arity(2)
.optional(),
filter: Joi.func()
.arity(2)
.optional()
})
)
2019-11-26 11:49:42 -04:00
)
})
});