@acala-network/chopsticks-db 0.9.1-1 → 0.9.1-3
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/dist/cjs/base-sql.js +73 -24
- package/dist/cjs/browser.js +42 -14
- package/dist/cjs/db/entities.js +33 -18
- package/dist/cjs/db/index.js +54 -30
- package/dist/cjs/index.js +28 -8
- package/dist/cjs/package.json +1 -0
- package/dist/esm/base-sql.js +45 -17
- package/dist/esm/browser.js +15 -6
- package/dist/esm/db/entities.js +13 -13
- package/dist/esm/db/index.js +2 -2
- package/dist/esm/index.js +2 -1
- package/package.json +11 -4
package/dist/cjs/base-sql.js
CHANGED
|
@@ -1,60 +1,109 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "BaseSqlDatabase", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return BaseSqlDatabase;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _entities = require("./db/entities");
|
|
12
|
+
function _define_property(obj, key, value) {
|
|
13
|
+
if (key in obj) {
|
|
14
|
+
Object.defineProperty(obj, key, {
|
|
15
|
+
value: value,
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true
|
|
19
|
+
});
|
|
20
|
+
} else {
|
|
21
|
+
obj[key] = value;
|
|
11
22
|
}
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
class BaseSqlDatabase {
|
|
12
26
|
async saveBlock(block) {
|
|
13
27
|
const db = await this.datasource;
|
|
14
28
|
const { hash, number, header, extrinsics, parentHash, storageDiff } = block;
|
|
15
|
-
await db.transaction(async (transactionalEntityManager)
|
|
16
|
-
await transactionalEntityManager.getRepository(
|
|
17
|
-
|
|
29
|
+
await db.transaction(async (transactionalEntityManager)=>{
|
|
30
|
+
await transactionalEntityManager.getRepository(_entities.BlockEntity).delete({
|
|
31
|
+
number
|
|
32
|
+
});
|
|
33
|
+
await transactionalEntityManager.getRepository(_entities.BlockEntity).upsert({
|
|
18
34
|
hash,
|
|
19
35
|
number,
|
|
20
36
|
header,
|
|
21
37
|
extrinsics,
|
|
22
38
|
parentHash,
|
|
23
|
-
storageDiff
|
|
24
|
-
}, [
|
|
39
|
+
storageDiff
|
|
40
|
+
}, [
|
|
41
|
+
'hash'
|
|
42
|
+
]);
|
|
25
43
|
});
|
|
26
44
|
}
|
|
27
45
|
async queryBlock(hash) {
|
|
28
46
|
const db = await this.datasource;
|
|
29
|
-
return db.getRepository(
|
|
47
|
+
return db.getRepository(_entities.BlockEntity).findOne({
|
|
48
|
+
where: {
|
|
49
|
+
hash
|
|
50
|
+
}
|
|
51
|
+
});
|
|
30
52
|
}
|
|
31
53
|
async queryBlockByNumber(number) {
|
|
32
54
|
const db = await this.datasource;
|
|
33
|
-
return db.getRepository(
|
|
55
|
+
return db.getRepository(_entities.BlockEntity).findOne({
|
|
56
|
+
where: {
|
|
57
|
+
number
|
|
58
|
+
},
|
|
59
|
+
order: {
|
|
60
|
+
number: 'desc'
|
|
61
|
+
}
|
|
62
|
+
});
|
|
34
63
|
}
|
|
35
64
|
async queryHighestBlock() {
|
|
36
65
|
const db = await this.datasource;
|
|
37
|
-
return db.getRepository(
|
|
66
|
+
return db.getRepository(_entities.BlockEntity).findOne({
|
|
67
|
+
where: {},
|
|
68
|
+
order: {
|
|
69
|
+
number: 'desc'
|
|
70
|
+
}
|
|
71
|
+
});
|
|
38
72
|
}
|
|
39
73
|
async deleteBlock(hash) {
|
|
40
74
|
const db = await this.datasource;
|
|
41
|
-
await db.getRepository(
|
|
75
|
+
await db.getRepository(_entities.BlockEntity).delete({
|
|
76
|
+
hash
|
|
77
|
+
});
|
|
42
78
|
}
|
|
43
79
|
async blocksCount() {
|
|
44
80
|
const db = await this.datasource;
|
|
45
|
-
return db.getRepository(
|
|
81
|
+
return db.getRepository(_entities.BlockEntity).count();
|
|
46
82
|
}
|
|
47
83
|
async saveStorage(blockHash, key, value) {
|
|
48
84
|
const db = await this.datasource;
|
|
49
|
-
await db.getRepository(
|
|
85
|
+
await db.getRepository(_entities.KeyValuePair).upsert({
|
|
50
86
|
blockHash,
|
|
51
87
|
key,
|
|
52
|
-
value
|
|
53
|
-
}, [
|
|
88
|
+
value
|
|
89
|
+
}, [
|
|
90
|
+
'blockHash',
|
|
91
|
+
'key'
|
|
92
|
+
]);
|
|
54
93
|
}
|
|
55
94
|
async queryStorage(blockHash, key) {
|
|
56
95
|
const db = await this.datasource;
|
|
57
|
-
return db.getRepository(
|
|
96
|
+
return db.getRepository(_entities.KeyValuePair).findOne({
|
|
97
|
+
where: {
|
|
98
|
+
blockHash,
|
|
99
|
+
key
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
constructor(){
|
|
104
|
+
_define_property(this, "close", async ()=>{
|
|
105
|
+
const db = await this.datasource;
|
|
106
|
+
await db.destroy();
|
|
107
|
+
});
|
|
58
108
|
}
|
|
59
109
|
}
|
|
60
|
-
exports.BaseSqlDatabase = BaseSqlDatabase;
|
package/dist/cjs/browser.js
CHANGED
|
@@ -1,24 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "IdbDatabase", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return IdbDatabase;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _idb = require("idb");
|
|
12
|
+
function _define_property(obj, key, value) {
|
|
13
|
+
if (key in obj) {
|
|
14
|
+
Object.defineProperty(obj, key, {
|
|
15
|
+
value: value,
|
|
16
|
+
enumerable: true,
|
|
17
|
+
configurable: true,
|
|
18
|
+
writable: true
|
|
13
19
|
});
|
|
20
|
+
} else {
|
|
21
|
+
obj[key] = value;
|
|
14
22
|
}
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
class IdbDatabase {
|
|
15
26
|
async close() {
|
|
16
27
|
const db = await this.datasource;
|
|
17
28
|
db.close();
|
|
18
29
|
}
|
|
19
30
|
async saveBlock(block) {
|
|
20
31
|
const db = await this.datasource;
|
|
21
|
-
const tx = db.transaction([
|
|
32
|
+
const tx = db.transaction([
|
|
33
|
+
'block'
|
|
34
|
+
], 'readwrite');
|
|
22
35
|
const store = tx.objectStore('block');
|
|
23
36
|
store.delete(block.hash);
|
|
24
37
|
store.put(block);
|
|
@@ -55,7 +68,22 @@ class IdbDatabase {
|
|
|
55
68
|
async queryStorage(blockHash, key) {
|
|
56
69
|
const db = await this.datasource;
|
|
57
70
|
const value = await db.get('keyValue', `${blockHash}-${key}`);
|
|
58
|
-
return value !== undefined ? {
|
|
71
|
+
return value !== undefined ? {
|
|
72
|
+
blockHash,
|
|
73
|
+
key,
|
|
74
|
+
value
|
|
75
|
+
} : null;
|
|
76
|
+
}
|
|
77
|
+
constructor(location){
|
|
78
|
+
_define_property(this, "datasource", void 0);
|
|
79
|
+
this.datasource = (0, _idb.openDB)(location, 1, {
|
|
80
|
+
upgrade (db) {
|
|
81
|
+
db.createObjectStore('keyValue');
|
|
82
|
+
const blockStore = db.createObjectStore('block', {
|
|
83
|
+
keyPath: 'hash'
|
|
84
|
+
});
|
|
85
|
+
blockStore.createIndex('byNumber', 'number');
|
|
86
|
+
}
|
|
87
|
+
});
|
|
59
88
|
}
|
|
60
89
|
}
|
|
61
|
-
exports.IdbDatabase = IdbDatabase;
|
package/dist/cjs/db/entities.js
CHANGED
|
@@ -1,53 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: all[name]
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
BlockEntity: function() {
|
|
13
|
+
return BlockEntity;
|
|
14
|
+
},
|
|
15
|
+
KeyValuePair: function() {
|
|
16
|
+
return KeyValuePair;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _typeorm = require("typeorm");
|
|
20
|
+
const KeyValuePair = new _typeorm.EntitySchema({
|
|
6
21
|
name: 'KeyValuePair',
|
|
7
22
|
columns: {
|
|
8
23
|
blockHash: {
|
|
9
24
|
primary: true,
|
|
10
25
|
type: 'varchar',
|
|
11
|
-
nullable: false
|
|
26
|
+
nullable: false
|
|
12
27
|
},
|
|
13
28
|
key: {
|
|
14
29
|
primary: true,
|
|
15
30
|
type: 'varchar',
|
|
16
|
-
nullable: false
|
|
31
|
+
nullable: false
|
|
17
32
|
},
|
|
18
33
|
value: {
|
|
19
34
|
type: 'text',
|
|
20
|
-
nullable: true
|
|
21
|
-
}
|
|
22
|
-
}
|
|
35
|
+
nullable: true
|
|
36
|
+
}
|
|
37
|
+
}
|
|
23
38
|
});
|
|
24
|
-
|
|
39
|
+
const BlockEntity = new _typeorm.EntitySchema({
|
|
25
40
|
name: 'Block',
|
|
26
41
|
columns: {
|
|
27
42
|
hash: {
|
|
28
43
|
primary: true,
|
|
29
44
|
type: 'varchar',
|
|
30
|
-
nullable: false
|
|
45
|
+
nullable: false
|
|
31
46
|
},
|
|
32
47
|
number: {
|
|
33
48
|
type: 'int',
|
|
34
|
-
nullable: false
|
|
49
|
+
nullable: false
|
|
35
50
|
},
|
|
36
51
|
header: {
|
|
37
52
|
type: 'text',
|
|
38
|
-
nullable: false
|
|
53
|
+
nullable: false
|
|
39
54
|
},
|
|
40
55
|
parentHash: {
|
|
41
56
|
type: 'varchar',
|
|
42
|
-
nullable: true
|
|
57
|
+
nullable: true
|
|
43
58
|
},
|
|
44
59
|
extrinsics: {
|
|
45
60
|
type: 'simple-array',
|
|
46
|
-
nullable: false
|
|
61
|
+
nullable: false
|
|
47
62
|
},
|
|
48
63
|
storageDiff: {
|
|
49
64
|
type: 'simple-json',
|
|
50
|
-
nullable: true
|
|
51
|
-
}
|
|
52
|
-
}
|
|
65
|
+
nullable: true
|
|
66
|
+
}
|
|
67
|
+
}
|
|
53
68
|
});
|
package/dist/cjs/db/index.js
CHANGED
|
@@ -1,43 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "openDb", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return openDb;
|
|
7
9
|
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
10
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
11
|
+
const _typeorm = require("typeorm");
|
|
12
|
+
const _entities = /*#__PURE__*/ _interop_require_wildcard(require("./entities"));
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
14
|
+
if (typeof WeakMap !== "function") return null;
|
|
15
|
+
var cacheBabelInterop = new WeakMap();
|
|
16
|
+
var cacheNodeInterop = new WeakMap();
|
|
17
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
18
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
19
|
+
})(nodeInterop);
|
|
20
|
+
}
|
|
21
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
22
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
26
|
+
return {
|
|
27
|
+
default: obj
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
31
|
+
if (cache && cache.has(obj)) {
|
|
32
|
+
return cache.get(obj);
|
|
33
|
+
}
|
|
34
|
+
var newObj = {
|
|
35
|
+
__proto__: null
|
|
36
|
+
};
|
|
37
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
38
|
+
for(var key in obj){
|
|
39
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
40
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
41
|
+
if (desc && (desc.get || desc.set)) {
|
|
42
|
+
Object.defineProperty(newObj, key, desc);
|
|
43
|
+
} else {
|
|
44
|
+
newObj[key] = obj[key];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
newObj.default = obj;
|
|
49
|
+
if (cache) {
|
|
50
|
+
cache.set(obj, newObj);
|
|
51
|
+
}
|
|
52
|
+
return newObj;
|
|
53
|
+
}
|
|
54
|
+
const openDb = async (dbPath)=>{
|
|
55
|
+
const source = new _typeorm.DataSource({
|
|
31
56
|
type: 'sqlite',
|
|
32
57
|
database: dbPath,
|
|
33
|
-
entities: Object.values(
|
|
58
|
+
entities: Object.values(_entities),
|
|
34
59
|
synchronize: true,
|
|
35
60
|
logging: false,
|
|
36
61
|
enableWAL: true,
|
|
37
62
|
busyErrorRetry: 1000,
|
|
38
|
-
busyTimeout: 5000
|
|
63
|
+
busyTimeout: 5000
|
|
39
64
|
});
|
|
40
65
|
await source.initialize();
|
|
41
66
|
return source;
|
|
42
67
|
};
|
|
43
|
-
exports.openDb = openDb;
|
package/dist/cjs/index.js
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "SqliteDatabase", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return SqliteDatabase;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _basesql = require("./base-sql");
|
|
12
|
+
const _db = require("./db");
|
|
13
|
+
function _define_property(obj, key, value) {
|
|
14
|
+
if (key in obj) {
|
|
15
|
+
Object.defineProperty(obj, key, {
|
|
16
|
+
value: value,
|
|
17
|
+
enumerable: true,
|
|
18
|
+
configurable: true,
|
|
19
|
+
writable: true
|
|
20
|
+
});
|
|
21
|
+
} else {
|
|
22
|
+
obj[key] = value;
|
|
23
|
+
}
|
|
24
|
+
return obj;
|
|
25
|
+
}
|
|
26
|
+
class SqliteDatabase extends _basesql.BaseSqlDatabase {
|
|
27
|
+
constructor(location){
|
|
8
28
|
super();
|
|
9
|
-
this
|
|
29
|
+
_define_property(this, "datasource", void 0);
|
|
30
|
+
this.datasource = (0, _db.openDb)(location);
|
|
10
31
|
}
|
|
11
32
|
}
|
|
12
|
-
exports.SqliteDatabase = SqliteDatabase;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type": "commonjs"}
|
package/dist/esm/base-sql.js
CHANGED
|
@@ -1,41 +1,61 @@
|
|
|
1
1
|
import { BlockEntity, KeyValuePair } from './db/entities';
|
|
2
2
|
export class BaseSqlDatabase {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
8
|
-
}
|
|
3
|
+
close = async ()=>{
|
|
4
|
+
const db = await this.datasource;
|
|
5
|
+
await db.destroy();
|
|
6
|
+
};
|
|
9
7
|
async saveBlock(block) {
|
|
10
8
|
const db = await this.datasource;
|
|
11
9
|
const { hash, number, header, extrinsics, parentHash, storageDiff } = block;
|
|
12
|
-
await db.transaction(async (transactionalEntityManager)
|
|
13
|
-
await transactionalEntityManager.getRepository(BlockEntity).delete({
|
|
10
|
+
await db.transaction(async (transactionalEntityManager)=>{
|
|
11
|
+
await transactionalEntityManager.getRepository(BlockEntity).delete({
|
|
12
|
+
number
|
|
13
|
+
});
|
|
14
14
|
await transactionalEntityManager.getRepository(BlockEntity).upsert({
|
|
15
15
|
hash,
|
|
16
16
|
number,
|
|
17
17
|
header,
|
|
18
18
|
extrinsics,
|
|
19
19
|
parentHash,
|
|
20
|
-
storageDiff
|
|
21
|
-
}, [
|
|
20
|
+
storageDiff
|
|
21
|
+
}, [
|
|
22
|
+
'hash'
|
|
23
|
+
]);
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
26
|
async queryBlock(hash) {
|
|
25
27
|
const db = await this.datasource;
|
|
26
|
-
return db.getRepository(BlockEntity).findOne({
|
|
28
|
+
return db.getRepository(BlockEntity).findOne({
|
|
29
|
+
where: {
|
|
30
|
+
hash
|
|
31
|
+
}
|
|
32
|
+
});
|
|
27
33
|
}
|
|
28
34
|
async queryBlockByNumber(number) {
|
|
29
35
|
const db = await this.datasource;
|
|
30
|
-
return db.getRepository(BlockEntity).findOne({
|
|
36
|
+
return db.getRepository(BlockEntity).findOne({
|
|
37
|
+
where: {
|
|
38
|
+
number
|
|
39
|
+
},
|
|
40
|
+
order: {
|
|
41
|
+
number: 'desc'
|
|
42
|
+
}
|
|
43
|
+
});
|
|
31
44
|
}
|
|
32
45
|
async queryHighestBlock() {
|
|
33
46
|
const db = await this.datasource;
|
|
34
|
-
return db.getRepository(BlockEntity).findOne({
|
|
47
|
+
return db.getRepository(BlockEntity).findOne({
|
|
48
|
+
where: {},
|
|
49
|
+
order: {
|
|
50
|
+
number: 'desc'
|
|
51
|
+
}
|
|
52
|
+
});
|
|
35
53
|
}
|
|
36
54
|
async deleteBlock(hash) {
|
|
37
55
|
const db = await this.datasource;
|
|
38
|
-
await db.getRepository(BlockEntity).delete({
|
|
56
|
+
await db.getRepository(BlockEntity).delete({
|
|
57
|
+
hash
|
|
58
|
+
});
|
|
39
59
|
}
|
|
40
60
|
async blocksCount() {
|
|
41
61
|
const db = await this.datasource;
|
|
@@ -46,11 +66,19 @@ export class BaseSqlDatabase {
|
|
|
46
66
|
await db.getRepository(KeyValuePair).upsert({
|
|
47
67
|
blockHash,
|
|
48
68
|
key,
|
|
49
|
-
value
|
|
50
|
-
}, [
|
|
69
|
+
value
|
|
70
|
+
}, [
|
|
71
|
+
'blockHash',
|
|
72
|
+
'key'
|
|
73
|
+
]);
|
|
51
74
|
}
|
|
52
75
|
async queryStorage(blockHash, key) {
|
|
53
76
|
const db = await this.datasource;
|
|
54
|
-
return db.getRepository(KeyValuePair).findOne({
|
|
77
|
+
return db.getRepository(KeyValuePair).findOne({
|
|
78
|
+
where: {
|
|
79
|
+
blockHash,
|
|
80
|
+
key
|
|
81
|
+
}
|
|
82
|
+
});
|
|
55
83
|
}
|
|
56
84
|
}
|
package/dist/esm/browser.js
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { openDB } from 'idb';
|
|
2
2
|
export class IdbDatabase {
|
|
3
|
-
|
|
3
|
+
datasource;
|
|
4
|
+
constructor(location){
|
|
4
5
|
this.datasource = openDB(location, 1, {
|
|
5
|
-
upgrade(db) {
|
|
6
|
+
upgrade (db) {
|
|
6
7
|
db.createObjectStore('keyValue');
|
|
7
|
-
const blockStore = db.createObjectStore('block', {
|
|
8
|
+
const blockStore = db.createObjectStore('block', {
|
|
9
|
+
keyPath: 'hash'
|
|
10
|
+
});
|
|
8
11
|
blockStore.createIndex('byNumber', 'number');
|
|
9
|
-
}
|
|
12
|
+
}
|
|
10
13
|
});
|
|
11
14
|
}
|
|
12
15
|
async close() {
|
|
@@ -15,7 +18,9 @@ export class IdbDatabase {
|
|
|
15
18
|
}
|
|
16
19
|
async saveBlock(block) {
|
|
17
20
|
const db = await this.datasource;
|
|
18
|
-
const tx = db.transaction([
|
|
21
|
+
const tx = db.transaction([
|
|
22
|
+
'block'
|
|
23
|
+
], 'readwrite');
|
|
19
24
|
const store = tx.objectStore('block');
|
|
20
25
|
store.delete(block.hash);
|
|
21
26
|
store.put(block);
|
|
@@ -52,6 +57,10 @@ export class IdbDatabase {
|
|
|
52
57
|
async queryStorage(blockHash, key) {
|
|
53
58
|
const db = await this.datasource;
|
|
54
59
|
const value = await db.get('keyValue', `${blockHash}-${key}`);
|
|
55
|
-
return value !== undefined ? {
|
|
60
|
+
return value !== undefined ? {
|
|
61
|
+
blockHash,
|
|
62
|
+
key,
|
|
63
|
+
value
|
|
64
|
+
} : null;
|
|
56
65
|
}
|
|
57
66
|
}
|
package/dist/esm/db/entities.js
CHANGED
|
@@ -5,18 +5,18 @@ export const KeyValuePair = new EntitySchema({
|
|
|
5
5
|
blockHash: {
|
|
6
6
|
primary: true,
|
|
7
7
|
type: 'varchar',
|
|
8
|
-
nullable: false
|
|
8
|
+
nullable: false
|
|
9
9
|
},
|
|
10
10
|
key: {
|
|
11
11
|
primary: true,
|
|
12
12
|
type: 'varchar',
|
|
13
|
-
nullable: false
|
|
13
|
+
nullable: false
|
|
14
14
|
},
|
|
15
15
|
value: {
|
|
16
16
|
type: 'text',
|
|
17
|
-
nullable: true
|
|
18
|
-
}
|
|
19
|
-
}
|
|
17
|
+
nullable: true
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
20
|
});
|
|
21
21
|
export const BlockEntity = new EntitySchema({
|
|
22
22
|
name: 'Block',
|
|
@@ -24,27 +24,27 @@ export const BlockEntity = new EntitySchema({
|
|
|
24
24
|
hash: {
|
|
25
25
|
primary: true,
|
|
26
26
|
type: 'varchar',
|
|
27
|
-
nullable: false
|
|
27
|
+
nullable: false
|
|
28
28
|
},
|
|
29
29
|
number: {
|
|
30
30
|
type: 'int',
|
|
31
|
-
nullable: false
|
|
31
|
+
nullable: false
|
|
32
32
|
},
|
|
33
33
|
header: {
|
|
34
34
|
type: 'text',
|
|
35
|
-
nullable: false
|
|
35
|
+
nullable: false
|
|
36
36
|
},
|
|
37
37
|
parentHash: {
|
|
38
38
|
type: 'varchar',
|
|
39
|
-
nullable: true
|
|
39
|
+
nullable: true
|
|
40
40
|
},
|
|
41
41
|
extrinsics: {
|
|
42
42
|
type: 'simple-array',
|
|
43
|
-
nullable: false
|
|
43
|
+
nullable: false
|
|
44
44
|
},
|
|
45
45
|
storageDiff: {
|
|
46
46
|
type: 'simple-json',
|
|
47
|
-
nullable: true
|
|
48
|
-
}
|
|
49
|
-
}
|
|
47
|
+
nullable: true
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
50
|
});
|
package/dist/esm/db/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DataSource } from 'typeorm';
|
|
2
2
|
import * as entities from './entities';
|
|
3
|
-
export const openDb = async (dbPath)
|
|
3
|
+
export const openDb = async (dbPath)=>{
|
|
4
4
|
const source = new DataSource({
|
|
5
5
|
type: 'sqlite',
|
|
6
6
|
database: dbPath,
|
|
@@ -9,7 +9,7 @@ export const openDb = async (dbPath) => {
|
|
|
9
9
|
logging: false,
|
|
10
10
|
enableWAL: true,
|
|
11
11
|
busyErrorRetry: 1000,
|
|
12
|
-
busyTimeout: 5000
|
|
12
|
+
busyTimeout: 5000
|
|
13
13
|
});
|
|
14
14
|
await source.initialize();
|
|
15
15
|
return source;
|
package/dist/esm/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acala-network/chopsticks-db",
|
|
3
|
-
"version": "0.9.1-
|
|
3
|
+
"version": "0.9.1-3",
|
|
4
4
|
"author": "Acala Developers <hello@acala.network>",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
|
+
"type": "module",
|
|
6
7
|
"scripts": {
|
|
7
8
|
"clean": "rm -rf dist",
|
|
8
|
-
"build": "yarn clean &&
|
|
9
|
+
"build": "yarn clean && yarn build:cjs && yarn build:esm && yarn build:types",
|
|
10
|
+
"build:cjs": "swc ./src --config-file ../../.cjsswcrc -d dist/cjs && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json",
|
|
11
|
+
"build:esm": "swc ./src --config-file ../../.esmswcrc -d dist/esm",
|
|
12
|
+
"build:types": "tsc -p tsconfig.json --emitDeclarationOnly --outDir dist/types"
|
|
9
13
|
},
|
|
10
14
|
"dependencies": {
|
|
11
|
-
"@acala-network/chopsticks-core": "0.9.1-
|
|
15
|
+
"@acala-network/chopsticks-core": "0.9.1-3",
|
|
12
16
|
"idb": "^7.1.1",
|
|
13
17
|
"sqlite3": "^5.1.6",
|
|
14
18
|
"typeorm": "^0.3.17"
|
|
15
19
|
},
|
|
16
20
|
"devDependencies": {
|
|
21
|
+
"@swc/cli": "0.1.62",
|
|
22
|
+
"@swc/core": "^1.3.96",
|
|
17
23
|
"typescript": "^5.1.6"
|
|
18
24
|
},
|
|
19
25
|
"files": [
|
|
@@ -37,6 +43,7 @@
|
|
|
37
43
|
"import": "./dist/esm/index.js",
|
|
38
44
|
"default": "./dist/esm/index.js"
|
|
39
45
|
},
|
|
40
|
-
"./package.json": "./package.json"
|
|
46
|
+
"./package.json": "./package.json",
|
|
47
|
+
"./package.cjs.json": "./dist/cjs/package.json"
|
|
41
48
|
}
|
|
42
49
|
}
|