@ocap/state 1.18.31 → 1.18.33
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.
- package/lib/states/account.js +8 -8
- package/lib/states/asset.js +4 -1
- package/lib/states/delegation.js +4 -0
- package/lib/states/evidence.js +2 -2
- package/lib/states/factory.js +5 -2
- package/lib/states/rollup-block.js +2 -2
- package/lib/states/rollup.js +9 -6
- package/lib/states/stake.js +11 -8
- package/lib/states/token.js +3 -0
- package/package.json +8 -8
package/lib/states/account.js
CHANGED
|
@@ -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
|
|
package/lib/states/asset.js
CHANGED
|
@@ -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
|
|
package/lib/states/delegation.js
CHANGED
|
@@ -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
|
|
package/lib/states/evidence.js
CHANGED
|
@@ -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().
|
|
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 });
|
package/lib/states/factory.js
CHANGED
|
@@ -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'),
|
package/lib/states/rollup.js
CHANGED
|
@@ -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
|
|
package/lib/states/stake.js
CHANGED
|
@@ -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
|
|
package/lib/states/token.js
CHANGED
|
@@ -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.
|
|
6
|
+
"version": "1.18.33",
|
|
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.
|
|
20
|
-
"@arcblock/validator": "1.18.
|
|
21
|
-
"@ocap/contract": "1.18.
|
|
22
|
-
"@ocap/mcrypto": "1.18.
|
|
23
|
-
"@ocap/message": "1.18.
|
|
24
|
-
"@ocap/util": "1.18.
|
|
19
|
+
"@arcblock/did": "1.18.33",
|
|
20
|
+
"@arcblock/validator": "1.18.33",
|
|
21
|
+
"@ocap/contract": "1.18.33",
|
|
22
|
+
"@ocap/mcrypto": "1.18.33",
|
|
23
|
+
"@ocap/message": "1.18.33",
|
|
24
|
+
"@ocap/util": "1.18.33",
|
|
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": "
|
|
34
|
+
"gitHead": "0d03089c6651d92a3451e9bbbc865c18c2f5d8ad"
|
|
35
35
|
}
|