@ocap/state 1.29.26 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/esm/_virtual/rolldown_runtime.mjs +28 -1
  2. package/esm/node_modules/bn.js/lib/bn.mjs +2551 -0
  3. package/esm/states/account.d.mts +18 -2
  4. package/esm/states/account.mjs +16 -16
  5. package/esm/states/asset.d.mts +2 -5
  6. package/esm/states/asset.mjs +9 -13
  7. package/esm/states/evidence.d.mts +11 -2
  8. package/esm/states/evidence.mjs +6 -9
  9. package/esm/states/factory.mjs +15 -11
  10. package/esm/states/rollup-block.d.mts +36 -2
  11. package/esm/states/rollup-block.mjs +27 -25
  12. package/esm/states/rollup.d.mts +62 -2
  13. package/esm/states/rollup.mjs +73 -49
  14. package/esm/states/stake.d.mts +22 -2
  15. package/esm/states/stake.mjs +32 -20
  16. package/esm/states/token-factory.d.mts +15 -4
  17. package/esm/states/token-factory.mjs +47 -31
  18. package/esm/states/token.d.mts +44 -3
  19. package/esm/states/token.mjs +55 -43
  20. package/lib/_virtual/rolldown_runtime.cjs +2 -0
  21. package/lib/node_modules/bn.js/lib/bn.cjs +2554 -0
  22. package/lib/states/account.cjs +15 -15
  23. package/lib/states/account.d.cts +18 -2
  24. package/lib/states/asset.cjs +7 -13
  25. package/lib/states/asset.d.cts +2 -5
  26. package/lib/states/evidence.cjs +5 -8
  27. package/lib/states/evidence.d.cts +11 -2
  28. package/lib/states/factory.cjs +14 -10
  29. package/lib/states/rollup-block.cjs +26 -24
  30. package/lib/states/rollup-block.d.cts +36 -2
  31. package/lib/states/rollup.cjs +71 -47
  32. package/lib/states/rollup.d.cts +62 -2
  33. package/lib/states/stake.cjs +31 -19
  34. package/lib/states/stake.d.cts +22 -2
  35. package/lib/states/token-factory.cjs +46 -30
  36. package/lib/states/token-factory.d.cts +15 -4
  37. package/lib/states/token.cjs +54 -42
  38. package/lib/states/token.d.cts +44 -3
  39. package/package.json +9 -9
@@ -22,21 +22,21 @@ var account_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
22
22
  updateOrCreate: () => updateOrCreate,
23
23
  validate: () => validate
24
24
  });
25
- const schema = _arcblock_validator.Joi.object({
26
- address: _arcblock_validator.Joi.DID().prefix().required(),
27
- pk: _arcblock_validator.Joi.string().allow(null).allow(""),
28
- issuer: _arcblock_validator.Joi.DID().prefix().allow(null).allow(""),
29
- moniker: _arcblock_validator.Joi.string().regex(/^[a-zA-Z0-9][-a-zA-Z0-9_]{2,128}$/).allow(""),
30
- nonce: _arcblock_validator.Joi.number().min(0).default(0),
31
- tokens: _arcblock_validator.Joi.object().pattern(_arcblock_validator.Joi.DID().prefix().role("ROLE_TOKEN"), _arcblock_validator.Joi.BN().min(0)).default({}),
32
- migratedTo: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().prefix()).default([]),
33
- migratedFrom: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().prefix()).default([]),
25
+ const schema = _arcblock_validator.v.pipe(_arcblock_validator.v.object({
26
+ address: (0, _arcblock_validator.vDID)({ prefix: true }),
27
+ pk: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.string())),
28
+ issuer: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.union([_arcblock_validator.v.literal(""), (0, _arcblock_validator.vDID)({ prefix: true })]))),
29
+ moniker: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.check((s) => s === "" || /^[a-zA-Z0-9][-a-zA-Z0-9_]{2,128}$/.test(s), "Invalid moniker format"))),
30
+ nonce: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.minValue(0)), 0),
31
+ tokens: _arcblock_validator.v.optional((0, _arcblock_validator.vFilteredRecord)((0, _arcblock_validator.vDID)({
32
+ prefix: true,
33
+ role: "ROLE_TOKEN"
34
+ }), (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNMin)(0))), {}),
35
+ migratedTo: _arcblock_validator.v.optional(_arcblock_validator.v.array((0, _arcblock_validator.vDID)({ prefix: true })), []),
36
+ migratedFrom: _arcblock_validator.v.optional(_arcblock_validator.v.array((0, _arcblock_validator.vDID)({ prefix: true })), []),
34
37
  context: _arcblock_validator.schemas.context,
35
- data: _arcblock_validator.Joi.any().optional().allow(null)
36
- }).options({
37
- stripUnknown: true,
38
- noDefaults: false
39
- });
38
+ data: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.any()))
39
+ }), (0, _arcblock_validator.vStripUnknown)());
40
40
  const create = (attrs, context) => {
41
41
  const account = {
42
42
  nonce: 0,
@@ -82,7 +82,7 @@ const updateOrCreate = (state, attrs, context) => {
82
82
  };
83
83
  const validate = (state) => {
84
84
  if (state.pk && typeof state.pk !== "string") state.pk = (0, _ocap_util.toBase58)(state.pk);
85
- const { value, error } = schema.validate(state);
85
+ const { value, error } = (0, _arcblock_validator.vValidate)(schema, state);
86
86
  if (error) throw new _ocap_util_lib_error.CustomError("INVALID_ACCOUNT", `Invalid account: ${error.details.map((x) => x.message).join(", ")}`);
87
87
  if (!value.data) value.data = null;
88
88
  return value;
@@ -1,12 +1,28 @@
1
1
  import { StateContextInput } from "../contexts/state.cjs";
2
2
  import { IAccountState } from "@ocap/types";
3
- import * as joi1 from "joi";
3
+ import { v } from "@arcblock/validator";
4
4
 
5
5
  //#region src/states/account.d.ts
6
6
  declare namespace account_d_exports {
7
7
  export { create, ensureChecksumAddress, isMigrated, schema, update, updateOrCreate, validate };
8
8
  }
9
- declare const schema: joi1.ObjectSchema<any>;
9
+ declare const schema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
+ readonly address: any;
11
+ readonly pk: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
12
+ readonly issuer: v.OptionalSchema<v.NullableSchema<v.UnionSchema<[v.LiteralSchema<"", undefined>, any], undefined>, undefined>, undefined>;
13
+ readonly moniker: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Invalid moniker format">]>, undefined>;
14
+ readonly nonce: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.MinValueAction<number, 0, undefined>]>, 0>;
15
+ readonly tokens: v.OptionalSchema<any, {}>;
16
+ readonly migratedTo: v.OptionalSchema<v.ArraySchema<any, undefined>, readonly []>;
17
+ readonly migratedFrom: v.OptionalSchema<v.ArraySchema<any, undefined>, readonly []>;
18
+ readonly context: v.ObjectSchema<{
19
+ readonly genesisTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
20
+ readonly genesisTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
21
+ readonly renaissanceTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
22
+ readonly renaissanceTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
23
+ }, undefined>;
24
+ readonly data: v.OptionalSchema<v.NullableSchema<v.AnySchema, undefined>, undefined>;
25
+ }, undefined>, any]>;
10
26
  declare const create: (attrs: Partial<IAccountState>, context: StateContextInput) => IAccountState;
11
27
  declare const update: (state: IAccountState, attrs: Partial<IAccountState>, context: StateContextInput) => IAccountState;
12
28
  declare const updateOrCreate: (state: IAccountState | null, attrs: Partial<IAccountState>, context: StateContextInput) => IAccountState;
@@ -9,21 +9,17 @@ let _arcblock_validator = require("@arcblock/validator");
9
9
  //#region src/states/asset.ts
10
10
  var asset_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
11
11
  create: () => create,
12
- schema: () => schema,
13
- schemas: () => _arcblock_validator.schemas,
14
12
  update: () => update,
15
13
  validate: () => validate
16
14
  });
17
- const stateSchema = _arcblock_validator.Joi.object({
15
+ const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:?\d{2})?)?$/;
16
+ const isIsoDateOrEmpty = (s) => s === "" || ISO_DATE_RE.test(s) && !Number.isNaN(new Date(s).getTime());
17
+ const stateSchema = _arcblock_validator.v.pipe(_arcblock_validator.v.object({
18
18
  ..._arcblock_validator.schemas.assetProps,
19
- owner: _arcblock_validator.Joi.DID().prefix().required(),
20
- consumedTime: _arcblock_validator.Joi.date().iso().raw().allow(""),
19
+ owner: (0, _arcblock_validator.vDID)({ prefix: true }),
20
+ consumedTime: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.check(isIsoDateOrEmpty, "Must be valid ISO date or empty"))),
21
21
  context: _arcblock_validator.schemas.context
22
- }).options({
23
- stripUnknown: true,
24
- noDefaults: false
25
- });
26
- const schema = _arcblock_validator.schemas.assetSchema;
22
+ }), (0, _arcblock_validator.vStripUnknown)());
27
23
  const create = (attrs, context) => {
28
24
  const asset = {
29
25
  consumedTime: "",
@@ -69,7 +65,7 @@ const update = (state, attrs, context) => {
69
65
  return validate(asset);
70
66
  };
71
67
  const validate = (state) => {
72
- const { value, error } = stateSchema.validate(state);
68
+ const { value, error } = (0, _arcblock_validator.vValidate)(stateSchema, state);
73
69
  if (error) throw new _ocap_util_lib_error.CustomError("INVALID_ASSET", `Invalid asset: ${error.details.map((x) => x.message).join(", ")}`);
74
70
  ["endpoint", "display"].forEach((key) => {
75
71
  if (!value[key]) delete value[key];
@@ -85,7 +81,5 @@ Object.defineProperty(exports, 'asset_exports', {
85
81
  }
86
82
  });
87
83
  exports.create = create;
88
- exports.schema = schema;
89
- exports.schemas = _arcblock_validator.schemas;
90
84
  exports.update = update;
91
85
  exports.validate = validate;
@@ -1,15 +1,12 @@
1
1
  import { StateContextInput } from "../contexts/state.cjs";
2
2
  import { IAssetState } from "@ocap/types";
3
- import * as joi3 from "joi";
4
- import { schemas } from "@arcblock/validator";
5
3
 
6
4
  //#region src/states/asset.d.ts
7
5
  declare namespace asset_d_exports {
8
- export { create, schema, schemas, update, validate };
6
+ export { create, update, validate };
9
7
  }
10
- declare const schema: joi3.ObjectSchema<any>;
11
8
  declare const create: (attrs: Partial<IAssetState>, context: StateContextInput) => IAssetState;
12
9
  declare const update: (state: IAssetState, attrs: Partial<IAssetState>, context: StateContextInput) => IAssetState;
13
10
  declare const validate: (state: IAssetState) => IAssetState;
14
11
  //#endregion
15
- export { asset_d_exports, create, schema, schemas, update, validate };
12
+ export { asset_d_exports, create, update, validate };
@@ -11,14 +11,11 @@ var evidence_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
11
11
  schema: () => schema,
12
12
  validate: () => validate
13
13
  });
14
- const schema = _arcblock_validator.Joi.object({
15
- hash: _arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).required(),
14
+ const schema = _arcblock_validator.v.pipe(_arcblock_validator.v.object({
15
+ hash: _arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.regex(_arcblock_validator.patterns.txHash)),
16
16
  context: _arcblock_validator.schemas.context,
17
- data: _arcblock_validator.Joi.any().optional().allow(null)
18
- }).options({
19
- stripUnknown: true,
20
- noDefaults: false
21
- });
17
+ data: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.any()))
18
+ }), (0, _arcblock_validator.vStripUnknown)());
22
19
  const create = (attrs, context) => {
23
20
  return validate({
24
21
  context: require_contexts_state.create(context),
@@ -26,7 +23,7 @@ const create = (attrs, context) => {
26
23
  });
27
24
  };
28
25
  const validate = (state) => {
29
- const { value, error } = schema.validate(state);
26
+ const { value, error } = (0, _arcblock_validator.vValidate)(schema, state);
30
27
  if (error) throw new _ocap_util_lib_error.CustomError("INVALID_EVIDENCE", `Invalid evidence state: ${error.details.map((x) => x.message).join(", ")}`);
31
28
  if (!value.data) value.data = null;
32
29
  return value;
@@ -1,12 +1,21 @@
1
1
  import { StateContextInput } from "../contexts/state.cjs";
2
2
  import { IEvidenceState } from "@ocap/types";
3
- import * as joi7 from "joi";
3
+ import { v } from "@arcblock/validator";
4
4
 
5
5
  //#region src/states/evidence.d.ts
6
6
  declare namespace evidence_d_exports {
7
7
  export { create, schema, validate };
8
8
  }
9
- declare const schema: joi7.ObjectSchema<any>;
9
+ declare const schema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
+ readonly hash: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
11
+ readonly context: v.ObjectSchema<{
12
+ readonly genesisTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
13
+ readonly genesisTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
14
+ readonly renaissanceTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
15
+ readonly renaissanceTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
16
+ }, undefined>;
17
+ readonly data: v.OptionalSchema<v.NullableSchema<v.AnySchema, undefined>, undefined>;
18
+ }, undefined>, any]>;
10
19
  declare const create: (attrs: Partial<IEvidenceState>, context: StateContextInput) => IEvidenceState;
11
20
  declare const validate: (state: IEvidenceState) => IEvidenceState;
12
21
  //#endregion
@@ -12,17 +12,21 @@ var factory_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
12
12
  update: () => update,
13
13
  validate: () => validate
14
14
  });
15
- const stateSchema = _arcblock_validator.Joi.object({
15
+ const ISO_DATE_RE = /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:?\d{2})?)?$/;
16
+ const isIsoDateOrEmpty = (s) => s === "" || ISO_DATE_RE.test(s) && !Number.isNaN(new Date(s).getTime());
17
+ const stateSchema = _arcblock_validator.v.pipe(_arcblock_validator.v.object({
16
18
  ..._arcblock_validator.schemas.factoryProps,
17
- owner: _arcblock_validator.Joi.DID().prefix().required(),
18
- numMinted: _arcblock_validator.Joi.number().min(0).default(0),
19
- lastSettlement: _arcblock_validator.Joi.date().iso().raw().allow(""),
20
- tokens: _arcblock_validator.Joi.object().pattern(_arcblock_validator.Joi.DID().prefix().role("ROLE_TOKEN"), _arcblock_validator.Joi.BN().min(0)).default({}),
19
+ input: _arcblock_validator.v.optional(_arcblock_validator.schemas.factoryProps.input),
20
+ output: _arcblock_validator.v.optional(_arcblock_validator.schemas.factoryProps.output),
21
+ owner: (0, _arcblock_validator.vDID)({ prefix: true }),
22
+ numMinted: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.minValue(0)), 0),
23
+ lastSettlement: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.check(isIsoDateOrEmpty, "Must be valid ISO date or empty"))),
24
+ tokens: _arcblock_validator.v.optional((0, _arcblock_validator.vFilteredRecord)((0, _arcblock_validator.vDID)({
25
+ prefix: true,
26
+ role: "ROLE_TOKEN"
27
+ }), (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNMin)(0))), {}),
21
28
  context: _arcblock_validator.schemas.context
22
- }).options({
23
- stripUnknown: true,
24
- noDefaults: false
25
- });
29
+ }), (0, _arcblock_validator.vStripUnknown)());
26
30
  const compileHook = (hook) => {
27
31
  if (hook.type === "contract") hook.compiled = (0, _ocap_contract.merge)((0, _ocap_contract.compile)(hook.hook));
28
32
  return hook;
@@ -65,7 +69,7 @@ const update = (state, attrs, context) => {
65
69
  return validate(factory);
66
70
  };
67
71
  const validate = (state) => {
68
- const { value, error } = stateSchema.validate(state);
72
+ const { value, error } = (0, _arcblock_validator.vValidate)(stateSchema, state);
69
73
  if (error) throw new Error(`Invalid factory: ${error.details.map((x) => x.message).join(", ")}`);
70
74
  ["display"].forEach((key) => {
71
75
  if (!value[key]) delete value[key];
@@ -12,31 +12,33 @@ var rollup_block_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll(
12
12
  update: () => update,
13
13
  validate: () => validate
14
14
  });
15
- const schema = _arcblock_validator.Joi.object({
16
- hash: _arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).required(),
17
- height: _arcblock_validator.Joi.number().integer().greater(0).required(),
18
- merkleRoot: _arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).required(),
19
- previousHash: _arcblock_validator.Joi.string().when("height", {
20
- is: 1,
21
- then: _arcblock_validator.Joi.string().optional().allow(null).allow(""),
22
- otherwise: _arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).required()
15
+ const schema = _arcblock_validator.v.pipe(_arcblock_validator.v.object({
16
+ hash: _arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.regex(_arcblock_validator.patterns.txHash)),
17
+ height: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.check((n) => n > 0, "Must be greater than 0")),
18
+ merkleRoot: _arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.regex(_arcblock_validator.patterns.txHash)),
19
+ previousHash: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.string())),
20
+ txsHash: _arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.regex(_arcblock_validator.patterns.txHash)),
21
+ txs: _arcblock_validator.v.pipe(_arcblock_validator.v.array(_arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.regex(_arcblock_validator.patterns.txHash))), _arcblock_validator.v.minLength(1), _arcblock_validator.v.check((arr) => new Set(arr).size === arr.length, "Must contain unique values")),
22
+ proposer: (0, _arcblock_validator.vDID)({
23
+ prefix: true,
24
+ wallet: "ethereum"
23
25
  }),
24
- txsHash: _arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).required(),
25
- txs: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).required()).min(1).unique().required(),
26
- proposer: _arcblock_validator.Joi.DID().prefix().wallet("ethereum").required(),
27
- signatures: _arcblock_validator.schemas.multiSig.min(1).required(),
28
- rollup: _arcblock_validator.Joi.DID().prefix().role("ROLE_ROLLUP").required(),
29
- mintedAmount: _arcblock_validator.Joi.BN().min(0).optional().allow(null).default("0"),
30
- burnedAmount: _arcblock_validator.Joi.BN().min(0).optional().allow(null).default("0"),
31
- rewardAmount: _arcblock_validator.Joi.BN().min(0).optional().allow(null).default("0"),
32
- minReward: _arcblock_validator.Joi.BN().min(0).required(),
33
- governance: _arcblock_validator.Joi.boolean().default(false),
26
+ signatures: _arcblock_validator.v.pipe(_arcblock_validator.schemas.multiSig, _arcblock_validator.v.minLength(1)),
27
+ rollup: (0, _arcblock_validator.vDID)({
28
+ prefix: true,
29
+ role: "ROLE_ROLLUP"
30
+ }),
31
+ mintedAmount: _arcblock_validator.v.optional(_arcblock_validator.v.nullable((0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNMin)(0))), "0"),
32
+ burnedAmount: _arcblock_validator.v.optional(_arcblock_validator.v.nullable((0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNMin)(0))), "0"),
33
+ rewardAmount: _arcblock_validator.v.optional(_arcblock_validator.v.nullable((0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNMin)(0))), "0"),
34
+ minReward: (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNMin)(0)),
35
+ governance: _arcblock_validator.v.optional(_arcblock_validator.v.boolean(), false),
34
36
  context: _arcblock_validator.schemas.context,
35
- data: _arcblock_validator.Joi.any().optional().allow(null)
36
- }).options({
37
- stripUnknown: true,
38
- noDefaults: false
39
- });
37
+ data: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.any()))
38
+ }), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => {
39
+ if (d.height === 1) return true;
40
+ return typeof d.previousHash === "string" && _arcblock_validator.patterns.txHash.test(d.previousHash);
41
+ }, "previousHash must be a valid tx hash when height > 1"), ["previousHash"]), (0, _arcblock_validator.vStripUnknown)());
40
42
  const create = (attrs, context) => {
41
43
  return validate({
42
44
  context: require_contexts_state.create(context),
@@ -66,7 +68,7 @@ const update = (state, context) => {
66
68
  });
67
69
  };
68
70
  const validate = (state) => {
69
- const { value, error } = schema.validate(state);
71
+ const { value, error } = (0, _arcblock_validator.vValidate)(schema, state);
70
72
  if (error) throw new _ocap_util_lib_error.CustomError("INVALID_ROLLUP_BLOCK", `Invalid rollup block: ${error.details.map((x) => x.message).join(", ")}`);
71
73
  if (!value.data) value.data = null;
72
74
  return value;
@@ -1,12 +1,46 @@
1
1
  import { StateContextInput } from "../contexts/state.cjs";
2
2
  import { IRollupBlock } from "@ocap/types";
3
- import * as joi0 from "joi";
3
+ import { v } from "@arcblock/validator";
4
4
 
5
5
  //#region src/states/rollup-block.d.ts
6
6
  declare namespace rollup_block_d_exports {
7
7
  export { create, schema, update, validate };
8
8
  }
9
- declare const schema: joi0.ObjectSchema<any>;
9
+ declare const schema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
+ readonly hash: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
11
+ readonly height: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.CheckAction<number, "Must be greater than 0">]>;
12
+ readonly merkleRoot: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
13
+ readonly previousHash: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
14
+ readonly txsHash: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>;
15
+ readonly txs: v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>, undefined>, v.MinLengthAction<string[], 1, undefined>, v.CheckAction<string[], "Must contain unique values">]>;
16
+ readonly proposer: any;
17
+ readonly signatures: v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
18
+ readonly signer: any;
19
+ readonly pk: v.AnySchema;
20
+ readonly signature: v.AnySchema;
21
+ readonly delegator: v.OptionalSchema<v.UnionSchema<[v.LiteralSchema<"", undefined>, any], undefined>, undefined>;
22
+ readonly data: v.OptionalSchema<v.AnySchema, undefined>;
23
+ }, undefined>, undefined>, v.MinLengthAction<{
24
+ readonly signer?: any;
25
+ pk: any;
26
+ signature: any;
27
+ delegator?: any;
28
+ data?: any;
29
+ }[], 1, undefined>]>;
30
+ readonly rollup: any;
31
+ readonly mintedAmount: v.OptionalSchema<v.NullableSchema<any, undefined>, "0">;
32
+ readonly burnedAmount: v.OptionalSchema<v.NullableSchema<any, undefined>, "0">;
33
+ readonly rewardAmount: v.OptionalSchema<v.NullableSchema<any, undefined>, "0">;
34
+ readonly minReward: any;
35
+ readonly governance: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
36
+ readonly context: v.ObjectSchema<{
37
+ readonly genesisTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
38
+ readonly genesisTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
39
+ readonly renaissanceTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
40
+ readonly renaissanceTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
41
+ }, undefined>;
42
+ readonly data: v.OptionalSchema<v.NullableSchema<v.AnySchema, undefined>, undefined>;
43
+ }, undefined>, v.BaseValidation<any, any, v.CheckIssue<any>>, any]>;
10
44
  declare const create: (attrs: Partial<IRollupBlock>, context: StateContextInput) => IRollupBlock;
11
45
  declare const update: (state: IRollupBlock, context: StateContextInput) => IRollupBlock;
12
46
  declare const validate: (state: IRollupBlock) => IRollupBlock;
@@ -1,5 +1,6 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
2
2
  const require_contexts_state = require('../contexts/state.cjs');
3
+ const require_bn$1 = require('../node_modules/bn.js/lib/bn.cjs');
3
4
  let _ocap_util = require("@ocap/util");
4
5
  let _ocap_util_lib_error = require("@ocap/util/lib/error");
5
6
  let lodash_pick = require("lodash/pick");
@@ -18,54 +19,77 @@ var rollup_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
18
19
  update: () => update,
19
20
  validate: () => validate
20
21
  });
21
- const validator = _arcblock_validator.Joi.object({
22
- pk: _arcblock_validator.Joi.string().required(),
23
- address: _arcblock_validator.Joi.DID().prefix().required(),
24
- endpoint: _arcblock_validator.Joi.string().uri({ scheme: [/https?/] }).required()
22
+ var import_bn = /* @__PURE__ */ require_rolldown_runtime.__toESM(require_bn$1.default, 1);
23
+ const isHttpOrHttpsUrl = (s) => {
24
+ try {
25
+ return ["http:", "https:"].includes(new URL(s).protocol);
26
+ } catch {
27
+ return false;
28
+ }
29
+ };
30
+ const validatorSchema = _arcblock_validator.v.object({
31
+ pk: _arcblock_validator.v.string(),
32
+ address: (0, _arcblock_validator.vDID)({ prefix: true }),
33
+ endpoint: _arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.check(isHttpOrHttpsUrl, "Must be a valid HTTP/HTTPS URL"))
25
34
  });
26
- const schema = _arcblock_validator.Joi.object({
27
- address: _arcblock_validator.Joi.DID().prefix().role("ROLE_ROLLUP").required(),
28
- tokenAddress: _arcblock_validator.Joi.DID().prefix().role("ROLE_TOKEN").required(),
29
- contractAddress: _arcblock_validator.Joi.DID().prefix().wallet("ethereum").required(),
30
- vaultAddress: _arcblock_validator.Joi.DID().wallet("ethereum").optional().allow(null).allow(""),
31
- migrateHistory: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().prefix().wallet("ethereum")).default([]),
32
- vaultHistory: _arcblock_validator.Joi.array().items(_arcblock_validator.Joi.DID().prefix().wallet("ethereum")).default([]),
33
- paused: _arcblock_validator.Joi.boolean().default(false),
34
- closed: _arcblock_validator.Joi.boolean().default(false),
35
- seedValidators: _arcblock_validator.Joi.array().items(validator).min(1).required(),
36
- validators: _arcblock_validator.Joi.array().items(validator).max(24).default([]),
37
- minStakeAmount: _arcblock_validator.Joi.BN().positive().required(),
38
- maxStakeAmount: _arcblock_validator.Joi.BN().min(_arcblock_validator.Joi.ref("minStakeAmount")).required(),
39
- minSignerCount: _arcblock_validator.Joi.number().integer().min(_arcblock_validator.Joi.ref("seedValidators", { adjust: (v) => v.length })).required(),
40
- maxSignerCount: _arcblock_validator.Joi.number().integer().min(1).max(8).min(_arcblock_validator.Joi.ref("minSignerCount")).required(),
41
- minBlockSize: _arcblock_validator.Joi.number().integer().min(1).required(),
42
- maxBlockSize: _arcblock_validator.Joi.number().integer().min(1).max(15).min(_arcblock_validator.Joi.ref("minBlockSize")).required(),
43
- minBlockInterval: _arcblock_validator.Joi.number().integer().min(1).max(3600).required(),
44
- minBlockConfirmation: _arcblock_validator.Joi.number().integer().min(1).max(100).required(),
45
- minDepositAmount: _arcblock_validator.Joi.BN().positive().less(_arcblock_validator.Joi.ref("minStakeAmount")).required(),
46
- maxDepositAmount: _arcblock_validator.Joi.BN().greater(_arcblock_validator.Joi.ref("minDepositAmount")).less(_arcblock_validator.Joi.ref("minStakeAmount")).required(),
47
- minWithdrawAmount: _arcblock_validator.Joi.BN().positive().required(),
48
- maxWithdrawAmount: _arcblock_validator.Joi.BN().greater(_arcblock_validator.Joi.ref("minWithdrawAmount")).required(),
49
- depositFeeRate: _arcblock_validator.Joi.number().integer().min(0).max(1e4).required(),
50
- withdrawFeeRate: _arcblock_validator.Joi.number().integer().min(0).max(1e4).required(),
51
- proposerFeeShare: _arcblock_validator.Joi.number().integer().min(1).max(1e4).required(),
52
- publisherFeeShare: _arcblock_validator.Joi.number().integer().min(1).max(1e4).required(),
53
- minDepositFee: _arcblock_validator.Joi.BN().positive().required(),
54
- maxDepositFee: _arcblock_validator.Joi.BN().min(_arcblock_validator.Joi.ref("minDepositFee")).required(),
55
- minWithdrawFee: _arcblock_validator.Joi.BN().positive().required(),
56
- maxWithdrawFee: _arcblock_validator.Joi.BN().min(_arcblock_validator.Joi.ref("minWithdrawFee")).required(),
57
- blockHeight: _arcblock_validator.Joi.number().integer().min(0).required(),
58
- blockHash: _arcblock_validator.Joi.string().regex(_arcblock_validator.patterns.txHash).optional().allow(null).allow(""),
59
- issuer: _arcblock_validator.Joi.DID().prefix().optional().allow(null),
60
- leaveWaitingPeriod: _arcblock_validator.Joi.number().integer().min(_arcblock_validator.Joi.ref("minBlockInterval")).default(0),
61
- publishWaitingPeriod: _arcblock_validator.Joi.number().integer().min(_arcblock_validator.Joi.ref("minBlockInterval")).default(0),
62
- publishSlashRate: _arcblock_validator.Joi.number().integer().min(1).max(1e4).required(),
35
+ const schema = _arcblock_validator.v.pipe(_arcblock_validator.v.object({
36
+ address: (0, _arcblock_validator.vDID)({
37
+ prefix: true,
38
+ role: "ROLE_ROLLUP"
39
+ }),
40
+ tokenAddress: (0, _arcblock_validator.vDID)({
41
+ prefix: true,
42
+ role: "ROLE_TOKEN"
43
+ }),
44
+ contractAddress: (0, _arcblock_validator.vDID)({
45
+ prefix: true,
46
+ wallet: "ethereum"
47
+ }),
48
+ vaultAddress: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.union([_arcblock_validator.v.literal(""), (0, _arcblock_validator.vDID)({ wallet: "ethereum" })]))),
49
+ migrateHistory: _arcblock_validator.v.optional(_arcblock_validator.v.array((0, _arcblock_validator.vDID)({
50
+ prefix: true,
51
+ wallet: "ethereum"
52
+ })), []),
53
+ vaultHistory: _arcblock_validator.v.optional(_arcblock_validator.v.array((0, _arcblock_validator.vDID)({
54
+ prefix: true,
55
+ wallet: "ethereum"
56
+ })), []),
57
+ paused: _arcblock_validator.v.optional(_arcblock_validator.v.boolean(), false),
58
+ closed: _arcblock_validator.v.optional(_arcblock_validator.v.boolean(), false),
59
+ seedValidators: _arcblock_validator.v.pipe(_arcblock_validator.v.array(validatorSchema), _arcblock_validator.v.minLength(1)),
60
+ validators: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.array(validatorSchema), _arcblock_validator.v.maxLength(24)), []),
61
+ minStakeAmount: (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNPositive)()),
62
+ maxStakeAmount: (0, _arcblock_validator.vBN)(),
63
+ minSignerCount: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer()),
64
+ maxSignerCount: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(8)),
65
+ minBlockSize: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1)),
66
+ maxBlockSize: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(15)),
67
+ minBlockInterval: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(3600)),
68
+ minBlockConfirmation: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(100)),
69
+ minDepositAmount: (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNPositive)()),
70
+ maxDepositAmount: (0, _arcblock_validator.vBN)(),
71
+ minWithdrawAmount: (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNPositive)()),
72
+ maxWithdrawAmount: (0, _arcblock_validator.vBN)(),
73
+ depositFeeRate: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(0), _arcblock_validator.v.maxValue(1e4)),
74
+ withdrawFeeRate: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(0), _arcblock_validator.v.maxValue(1e4)),
75
+ proposerFeeShare: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(1e4)),
76
+ publisherFeeShare: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(1e4)),
77
+ minDepositFee: (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNPositive)()),
78
+ maxDepositFee: (0, _arcblock_validator.vBN)(),
79
+ minWithdrawFee: (0, _arcblock_validator.vBN)((0, _arcblock_validator.vBNPositive)()),
80
+ maxWithdrawFee: (0, _arcblock_validator.vBN)(),
81
+ blockHeight: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(0)),
82
+ blockHash: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.union([_arcblock_validator.v.literal(""), _arcblock_validator.v.pipe(_arcblock_validator.v.string(), _arcblock_validator.v.regex(_arcblock_validator.patterns.txHash))]))),
83
+ issuer: _arcblock_validator.v.optional(_arcblock_validator.v.nullable((0, _arcblock_validator.vDID)({ prefix: true }))),
84
+ leaveWaitingPeriod: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer()), 0),
85
+ publishWaitingPeriod: _arcblock_validator.v.optional(_arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer()), 0),
86
+ publishSlashRate: _arcblock_validator.v.pipe(_arcblock_validator.v.number(), _arcblock_validator.v.integer(), _arcblock_validator.v.minValue(1), _arcblock_validator.v.maxValue(1e4)),
63
87
  context: _arcblock_validator.schemas.context,
64
- data: _arcblock_validator.Joi.any().optional().allow(null)
65
- }).options({
66
- stripUnknown: true,
67
- noDefaults: false
68
- });
88
+ data: _arcblock_validator.v.optional(_arcblock_validator.v.nullable(_arcblock_validator.v.any()))
89
+ }), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => new import_bn.default(d.maxStakeAmount).gte(new import_bn.default(d.minStakeAmount)), "maxStakeAmount must be >= minStakeAmount"), ["maxStakeAmount"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => d.minSignerCount >= d.seedValidators.length, "minSignerCount must be >= seedValidators count"), ["minSignerCount"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => d.maxSignerCount >= d.minSignerCount, "maxSignerCount must be >= minSignerCount"), ["maxSignerCount"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => d.maxBlockSize >= d.minBlockSize, "maxBlockSize must be >= minBlockSize"), ["maxBlockSize"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => new import_bn.default(d.minDepositAmount).lt(new import_bn.default(d.minStakeAmount)), "minDepositAmount must be < minStakeAmount"), ["minDepositAmount"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => {
90
+ const max = new import_bn.default(d.maxDepositAmount);
91
+ return max.gt(new import_bn.default(d.minDepositAmount)) && max.lt(new import_bn.default(d.minStakeAmount));
92
+ }, "maxDepositAmount must be > minDepositAmount and < minStakeAmount"), ["maxDepositAmount"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => new import_bn.default(d.maxWithdrawAmount).gt(new import_bn.default(d.minWithdrawAmount)), "maxWithdrawAmount must be > minWithdrawAmount"), ["maxWithdrawAmount"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => new import_bn.default(d.maxDepositFee).gte(new import_bn.default(d.minDepositFee)), "maxDepositFee must be >= minDepositFee"), ["maxDepositFee"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => new import_bn.default(d.maxWithdrawFee).gte(new import_bn.default(d.minWithdrawFee)), "maxWithdrawFee must be >= minWithdrawFee"), ["maxWithdrawFee"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => d.leaveWaitingPeriod >= d.minBlockInterval, "leaveWaitingPeriod must be >= minBlockInterval"), ["leaveWaitingPeriod"]), _arcblock_validator.v.forward(_arcblock_validator.v.check((d) => d.publishWaitingPeriod >= d.minBlockInterval, "publishWaitingPeriod must be >= minBlockInterval"), ["publishWaitingPeriod"]), (0, _arcblock_validator.vStripUnknown)());
69
93
  const create = (attrs, context) => {
70
94
  const rollup = {
71
95
  context: require_contexts_state.create(context),
@@ -206,7 +230,7 @@ const migrateVault = (state, to, context) => {
206
230
  });
207
231
  };
208
232
  const validate = (state) => {
209
- const { value, error } = schema.validate(state);
233
+ const { value, error } = (0, _arcblock_validator.vValidate)(schema, state);
210
234
  if (error) throw new _ocap_util_lib_error.CustomError("INVALID_ROLLUP_PROPS", error.details.map((x) => x.message).join(", "));
211
235
  if (!value.data) value.data = null;
212
236
  return value;
@@ -1,12 +1,72 @@
1
1
  import { StateContextInput } from "../contexts/state.cjs";
2
2
  import { IRollupState } from "@ocap/types";
3
- import * as joi0 from "joi";
3
+ import { v } from "@arcblock/validator";
4
4
 
5
5
  //#region src/states/rollup.d.ts
6
6
  declare namespace rollup_d_exports {
7
7
  export { close, create, migrateContract, migrateVault, pause, resume, schema, update, validate };
8
8
  }
9
- declare const schema: joi0.ObjectSchema<any>;
9
+ declare const schema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
10
+ readonly address: any;
11
+ readonly tokenAddress: any;
12
+ readonly contractAddress: any;
13
+ readonly vaultAddress: v.OptionalSchema<v.NullableSchema<v.UnionSchema<[v.LiteralSchema<"", undefined>, any], undefined>, undefined>, undefined>;
14
+ readonly migrateHistory: v.OptionalSchema<v.ArraySchema<any, undefined>, readonly []>;
15
+ readonly vaultHistory: v.OptionalSchema<v.ArraySchema<any, undefined>, readonly []>;
16
+ readonly paused: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
17
+ readonly closed: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
18
+ readonly seedValidators: v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
19
+ readonly pk: v.StringSchema<undefined>;
20
+ readonly address: any;
21
+ readonly endpoint: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be a valid HTTP/HTTPS URL">]>;
22
+ }, undefined>, undefined>, v.MinLengthAction<{
23
+ pk: string;
24
+ readonly address?: any;
25
+ endpoint: string;
26
+ }[], 1, undefined>]>;
27
+ readonly validators: v.OptionalSchema<v.SchemaWithPipe<readonly [v.ArraySchema<v.ObjectSchema<{
28
+ readonly pk: v.StringSchema<undefined>;
29
+ readonly address: any;
30
+ readonly endpoint: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be a valid HTTP/HTTPS URL">]>;
31
+ }, undefined>, undefined>, v.MaxLengthAction<{
32
+ pk: string;
33
+ readonly address?: any;
34
+ endpoint: string;
35
+ }[], 24, undefined>]>, readonly []>;
36
+ readonly minStakeAmount: any;
37
+ readonly maxStakeAmount: any;
38
+ readonly minSignerCount: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>]>;
39
+ readonly maxSignerCount: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 8, undefined>]>;
40
+ readonly minBlockSize: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>]>;
41
+ readonly maxBlockSize: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 15, undefined>]>;
42
+ readonly minBlockInterval: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 3600, undefined>]>;
43
+ readonly minBlockConfirmation: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 100, undefined>]>;
44
+ readonly minDepositAmount: any;
45
+ readonly maxDepositAmount: any;
46
+ readonly minWithdrawAmount: any;
47
+ readonly maxWithdrawAmount: any;
48
+ readonly depositFeeRate: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 10000, undefined>]>;
49
+ readonly withdrawFeeRate: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>, v.MaxValueAction<number, 10000, undefined>]>;
50
+ readonly proposerFeeShare: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 10000, undefined>]>;
51
+ readonly publisherFeeShare: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 10000, undefined>]>;
52
+ readonly minDepositFee: any;
53
+ readonly maxDepositFee: any;
54
+ readonly minWithdrawFee: any;
55
+ readonly maxWithdrawFee: any;
56
+ readonly blockHeight: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
57
+ readonly blockHash: v.OptionalSchema<v.NullableSchema<v.UnionSchema<[v.LiteralSchema<"", undefined>, v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.RegexAction<string, undefined>]>], undefined>, undefined>, undefined>;
58
+ readonly issuer: v.OptionalSchema<v.NullableSchema<any, undefined>, undefined>;
59
+ readonly leaveWaitingPeriod: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>]>, 0>;
60
+ readonly publishWaitingPeriod: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>]>, 0>;
61
+ readonly publishSlashRate: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 10000, undefined>]>;
62
+ readonly context: v.ObjectSchema<{
63
+ readonly genesisTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
64
+ readonly genesisTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
65
+ readonly renaissanceTime: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must be valid ISO date">]>;
66
+ readonly renaissanceTx: v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.CheckAction<string, "Must match tx hash pattern or be empty">]>;
67
+ }, undefined>;
68
+ readonly data: v.OptionalSchema<v.NullableSchema<v.AnySchema, undefined>, undefined>;
69
+ }, undefined>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, v.BaseValidation<any, any, v.CheckIssue<any>>, any]>;
10
70
  declare const create: (attrs: Partial<IRollupState>, context: StateContextInput) => IRollupState;
11
71
  declare const update: (state: IRollupState, updates: Partial<IRollupState>, context: StateContextInput) => IRollupState;
12
72
  declare const pause: (state: IRollupState, context: StateContextInput) => IRollupState;