@ocap/state 1.18.32 → 1.18.34

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.
@@ -4,20 +4,20 @@ const flatten = require('lodash/flatten');
4
4
  const { CustomError: Error } = require('@ocap/util/lib/error');
5
5
  const { isFromPublicKey } = require('@arcblock/did');
6
6
  const { isEthereumDid, toChecksumAddress } = require('@arcblock/did/lib/type');
7
- const { toBase58, BN } = require('@ocap/util');
7
+ const { toBase58, toAddress, BN } = require('@ocap/util');
8
8
 
9
9
  const { Joi, schemas } = require('@arcblock/validator');
10
10
  const { create: createStateContext, update: updateStateContext } = require('../contexts/state');
11
11
 
12
12
  const schema = Joi.object({
13
- address: Joi.DID().required(),
13
+ address: Joi.DID().prefix().required(),
14
14
  pk: Joi.string().allow(''),
15
- issuer: Joi.DID().allow(''),
15
+ issuer: Joi.DID().prefix().allow(''),
16
16
  moniker: Joi.string().trim().min(2).max(40).allow(''),
17
17
  nonce: Joi.number().min(0).default(0),
18
- tokens: Joi.object().pattern(Joi.DID().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
19
- migratedTo: Joi.array().items(Joi.DID()).default([]),
20
- migratedFrom: Joi.array().items(Joi.DID()).default([]),
18
+ tokens: Joi.object().pattern(Joi.DID().prefix().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
19
+ migratedTo: Joi.array().items(Joi.DID().prefix()).default([]),
20
+ migratedFrom: Joi.array().items(Joi.DID().prefix()).default([]),
21
21
  context: schemas.context,
22
22
  data: Joi.any().optional(),
23
23
  }).options({ stripUnknown: true, noDefaults: false });
@@ -32,12 +32,12 @@ const create = (attrs, context) => {
32
32
  ...pick(attrs, ['address', 'pk', 'issuer', 'moniker', 'data', 'nonce', 'migratedFrom', 'tokens']),
33
33
  };
34
34
 
35
+ account.address = toAddress(ensureChecksumAddress(account.address));
36
+
35
37
  if (!account.moniker) {
36
38
  account.moniker = [account.address.slice(0, 6), account.address.slice(-5)].join('-');
37
39
  }
38
40
 
39
- account.address = ensureChecksumAddress(account.address);
40
-
41
41
  return validate(account);
42
42
  };
43
43
 
@@ -1,12 +1,13 @@
1
1
  const pick = require('lodash/pick');
2
2
  const { Joi, schemas } = require('@arcblock/validator');
3
3
  const { CustomError: Error } = require('@ocap/util/lib/error');
4
+ const { toAddress } = require('@ocap/util');
4
5
 
5
6
  const { create: createStateContext, update: updateStateContext } = require('../contexts/state');
6
7
 
7
8
  const schema = Joi.object({
8
9
  ...schemas.assetProps,
9
- owner: Joi.DID().required(),
10
+ owner: Joi.DID().prefix().required(),
10
11
  consumedTime: Joi.date().iso().raw().allow(''),
11
12
  context: schemas.context,
12
13
  }).options({
@@ -40,6 +41,8 @@ const create = (attrs, context) => {
40
41
  ]),
41
42
  };
42
43
 
44
+ asset.address = toAddress(asset.address);
45
+
43
46
  return validate(asset);
44
47
  };
45
48
 
@@ -1,5 +1,7 @@
1
1
  const pick = require('lodash/pick');
2
+ const { toAddress } = require('@ocap/util');
2
3
 
4
+ // FIXME: add better validation
3
5
  const { create: createStateContext, update: updateStateContext } = require('../contexts/state');
4
6
 
5
7
  const create = (attrs, context) => {
@@ -12,6 +14,8 @@ const create = (attrs, context) => {
12
14
  delegation.data = null;
13
15
  }
14
16
 
17
+ delegation.address = toAddress(delegation.address);
18
+
15
19
  return delegation;
16
20
  };
17
21
 
@@ -1,11 +1,11 @@
1
1
  const pick = require('lodash/pick');
2
2
  const { CustomError: Error } = require('@ocap/util/lib/error');
3
- const { Joi, schemas } = require('@arcblock/validator');
3
+ const { Joi, schemas, patterns } = require('@arcblock/validator');
4
4
 
5
5
  const { create: createStateContext } = require('../contexts/state');
6
6
 
7
7
  const schema = Joi.object({
8
- hash: Joi.string().trim().required(),
8
+ hash: Joi.string().regex(patterns.txHash).required(),
9
9
  context: schemas.context,
10
10
  data: Joi.any().optional(),
11
11
  }).options({ stripUnknown: true, noDefaults: false });
@@ -1,15 +1,16 @@
1
1
  const pick = require('lodash/pick');
2
2
  const { Joi, schemas } = require('@arcblock/validator');
3
3
  const { compile, merge, getQuota } = require('@ocap/contract');
4
+ const { toAddress } = require('@ocap/util');
4
5
 
5
6
  const { create: createStateContext, update: updateStateContext } = require('../contexts/state');
6
7
 
7
8
  const stateSchema = Joi.object({
8
9
  ...schemas.factoryProps,
9
- owner: Joi.DID().required(),
10
+ owner: Joi.DID().prefix().required(),
10
11
  numMinted: Joi.number().min(0).default(0),
11
12
  lastSettlement: Joi.date().iso().raw().allow(''),
12
- tokens: Joi.object().pattern(Joi.DID().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
13
+ tokens: Joi.object().pattern(Joi.DID().prefix().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
13
14
  context: schemas.context,
14
15
  }).options({
15
16
  stripUnknown: true,
@@ -54,6 +55,8 @@ const create = (attrs, context) => {
54
55
  const quota = getQuota(factory.input);
55
56
  factory.hooks = (factory.hooks || []).map((x) => compileHook(x, quota));
56
57
 
58
+ factory.address = toAddress(factory.address);
59
+
57
60
  return validate(factory);
58
61
  };
59
62
 
@@ -16,10 +16,10 @@ const schema = Joi.object({
16
16
  txsHash: Joi.string().regex(patterns.txHash).required(),
17
17
  txs: Joi.array().items(Joi.string().regex(patterns.txHash).required()).min(1).unique().required(),
18
18
 
19
- proposer: Joi.DID().wallet('ethereum').required(),
19
+ proposer: Joi.DID().prefix().wallet('ethereum').required(),
20
20
  signatures: schemas.multiSig.min(1).required(),
21
21
 
22
- rollup: Joi.DID().role('ROLE_ROLLUP').required(),
22
+ rollup: Joi.DID().prefix().role('ROLE_ROLLUP').required(),
23
23
 
24
24
  mintedAmount: Joi.BN().min(0).optional().default('0'),
25
25
  burnedAmount: Joi.BN().min(0).optional().default('0'),
@@ -1,22 +1,23 @@
1
1
  const pick = require('lodash/pick');
2
2
  const { CustomError: Error } = require('@ocap/util/lib/error');
3
+ const { toAddress } = require('@ocap/util');
3
4
 
4
5
  const { Joi, schemas, patterns } = require('@arcblock/validator');
5
6
  const { create: createStateContext, update: updateStateContext } = require('../contexts/state');
6
7
 
7
8
  const validator = Joi.object({
8
9
  pk: Joi.string().required(),
9
- address: Joi.DID().required(),
10
+ address: Joi.DID().prefix().required(),
10
11
  endpoint: Joi.string()
11
12
  .uri({ scheme: [/https?/] })
12
13
  .required(),
13
14
  });
14
15
 
15
16
  const schema = Joi.object({
16
- address: Joi.DID().role('ROLE_ROLLUP').required(),
17
- tokenAddress: Joi.DID().role('ROLE_TOKEN').required(),
18
- contractAddress: Joi.DID().wallet('ethereum').required(),
19
- migrateHistory: Joi.array().items(Joi.DID().wallet('ethereum')).default([]),
17
+ address: Joi.DID().prefix().role('ROLE_ROLLUP').required(),
18
+ tokenAddress: Joi.DID().prefix().role('ROLE_TOKEN').required(),
19
+ contractAddress: Joi.DID().prefix().wallet('ethereum').required(),
20
+ migrateHistory: Joi.array().items(Joi.DID().prefix().wallet('ethereum')).default([]),
20
21
  paused: Joi.boolean().default(false),
21
22
 
22
23
  seedValidators: Joi.array().items(validator).min(1).required(),
@@ -57,7 +58,7 @@ const schema = Joi.object({
57
58
 
58
59
  blockHeight: Joi.number().integer().min(0).required(),
59
60
  blockHash: Joi.string().regex(patterns.txHash).optional().allow(''),
60
- issuer: Joi.DID().optional(),
61
+ issuer: Joi.DID().prefix().optional(),
61
62
 
62
63
  leaveWaitingPeriod: Joi.number().integer().min(Joi.ref('minBlockInterval')).default(0),
63
64
  publishWaitingPeriod: Joi.number().integer().min(Joi.ref('minBlockInterval')).default(0),
@@ -109,6 +110,8 @@ const create = (attrs, context) => {
109
110
  ]),
110
111
  };
111
112
 
113
+ rollup.address = toAddress(rollup.address);
114
+
112
115
  return validate(rollup);
113
116
  };
114
117
 
@@ -1,21 +1,22 @@
1
1
  const pick = require('lodash/pick');
2
2
  const { CustomError: Error } = require('@ocap/util/lib/error');
3
3
  const { Joi, schemas } = require('@arcblock/validator');
4
+ const { toAddress } = require('@ocap/util');
4
5
 
5
6
  const { create: createStateContext, update: updateStateContext } = require('../contexts/state');
6
7
 
7
8
  const schema = Joi.object({
8
- address: Joi.DID().role('ROLE_STAKE').trim().required(),
9
- sender: Joi.DID().trim().required(),
10
- receiver: Joi.DID().trim().required(),
11
- tokens: Joi.object({}).pattern(Joi.DID().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
12
- assets: Joi.array().items(Joi.DID().role('ROLE_ASSET')).default([]),
13
- slashers: Joi.array().items(Joi.DID()).default([]),
9
+ address: Joi.DID().prefix().role('ROLE_STAKE').trim().required(),
10
+ sender: Joi.DID().prefix().trim().required(),
11
+ receiver: Joi.DID().prefix().trim().required(),
12
+ tokens: Joi.object({}).pattern(Joi.DID().prefix().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
13
+ assets: Joi.array().items(Joi.DID().prefix().role('ROLE_ASSET')).default([]),
14
+ slashers: Joi.array().items(Joi.DID().prefix()).default([]),
14
15
  revocable: Joi.boolean().default(true),
15
16
  message: Joi.string().trim().min(1).max(256).required(),
16
17
  revokeWaitingPeriod: Joi.number().integer().min(0).default(0),
17
- revokedTokens: Joi.object({}).pattern(Joi.DID().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
18
- revokedAssets: Joi.array().items(Joi.DID().role('ROLE_ASSET')).default([]),
18
+ revokedTokens: Joi.object({}).pattern(Joi.DID().prefix().role('ROLE_TOKEN'), Joi.BN().min(0)).default({}),
19
+ revokedAssets: Joi.array().items(Joi.DID().prefix().role('ROLE_ASSET')).default([]),
19
20
  context: schemas.context,
20
21
  data: Joi.any().optional(),
21
22
  }).options({ stripUnknown: true, noDefaults: false });
@@ -44,6 +45,8 @@ const create = (attrs, context) => {
44
45
  ]),
45
46
  };
46
47
 
48
+ stake.address = toAddress(stake.address);
49
+
47
50
  return validate(stake);
48
51
  };
49
52
 
@@ -1,5 +1,6 @@
1
1
  const pick = require('lodash/pick');
2
2
  const { toChecksumAddress } = require('@arcblock/did/lib/type');
3
+ const { toAddress } = require('@ocap/util');
3
4
 
4
5
  const { create: createStateContext } = require('../contexts/state');
5
6
 
@@ -31,6 +32,8 @@ const create = (attrs, context) => {
31
32
  token.foreignToken.contractAddress = toChecksumAddress(token.foreignToken.contractAddress);
32
33
  }
33
34
 
35
+ token.address = toAddress(token.address);
36
+
34
37
  return token;
35
38
  };
36
39
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "1.18.32",
6
+ "version": "1.18.34",
7
7
  "description": "",
8
8
  "main": "lib/index.js",
9
9
  "files": [
@@ -16,12 +16,12 @@
16
16
  "coverage": "npm run test -- --coverage"
17
17
  },
18
18
  "dependencies": {
19
- "@arcblock/did": "1.18.32",
20
- "@arcblock/validator": "1.18.32",
21
- "@ocap/contract": "1.18.32",
22
- "@ocap/mcrypto": "1.18.32",
23
- "@ocap/message": "1.18.32",
24
- "@ocap/util": "1.18.32",
19
+ "@arcblock/did": "1.18.34",
20
+ "@arcblock/validator": "1.18.34",
21
+ "@ocap/contract": "1.18.34",
22
+ "@ocap/mcrypto": "1.18.34",
23
+ "@ocap/message": "1.18.34",
24
+ "@ocap/util": "1.18.34",
25
25
  "bloom-filters": "^1.3.9",
26
26
  "lodash": "^4.17.21"
27
27
  },
@@ -31,5 +31,5 @@
31
31
  "keywords": [],
32
32
  "author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
33
33
  "license": "MIT",
34
- "gitHead": "44a7e8ee3e89535a4e18fbbc2ad6ff408c8e2474"
34
+ "gitHead": "c12d3cbf9617d861d83c08726d9e0d55fdf9a459"
35
35
  }