@ocap/resolver 1.29.4 → 1.29.6
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/esm/index.d.mts +40 -34
- package/esm/index.mjs +17 -3
- package/esm/types.d.mts +2 -1
- package/lib/index.cjs +17 -3
- package/lib/index.d.cts +40 -34
- package/lib/types.d.cts +2 -1
- package/package.json +19 -18
package/esm/index.d.mts
CHANGED
|
@@ -1,32 +1,36 @@
|
|
|
1
|
-
import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB, IListChunksParams, IPaginatedResult, IPipelineLogger, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.mjs";
|
|
1
|
+
import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB as IIndexDB$1, IListChunksParams, IPaginatedResult, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB as IStateDB$1, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState as TIndexedTokenState$1, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.mjs";
|
|
2
2
|
import { MigrationChainManager } from "./migration-chain.mjs";
|
|
3
3
|
import { TokenDistributionManager } from "./token-distribution.mjs";
|
|
4
4
|
import { createExecutor } from "@ocap/tx-protocols";
|
|
5
5
|
import Queue from "queue";
|
|
6
|
+
import { ILedger } from "@ocap/types";
|
|
6
7
|
|
|
7
8
|
//#region src/index.d.ts
|
|
8
9
|
declare const formatData: (data: IDataObject | null | undefined) => IDataObject | null | undefined;
|
|
9
10
|
declare const formatDelegationOps: (state: IDelegateState) => any;
|
|
10
11
|
declare class OCAPResolver implements IResolver {
|
|
11
|
-
statedb: IStateDB;
|
|
12
|
-
indexdb: IIndexDB;
|
|
12
|
+
statedb: IStateDB$1;
|
|
13
|
+
indexdb: IIndexDB$1;
|
|
14
|
+
ledger: ILedger;
|
|
13
15
|
filter?: IFilter;
|
|
14
16
|
config: IChainConfig;
|
|
15
17
|
chainAddr: string;
|
|
16
|
-
tokenItx: TIndexedTokenState | null;
|
|
18
|
+
tokenItx: TIndexedTokenState$1 | null;
|
|
17
19
|
consensus: string;
|
|
18
20
|
queue: Queue;
|
|
19
21
|
tokenCache: ITokenCache;
|
|
20
22
|
tokenDistribution: TokenDistributionManager;
|
|
21
23
|
executor: ReturnType<typeof createExecutor>;
|
|
22
|
-
logger: IPipelineLogger;
|
|
24
|
+
logger: IPipelineLogger$1;
|
|
23
25
|
migrationChain?: MigrationChainManager;
|
|
24
|
-
formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext) => Promise<IResolverTransaction | null>;
|
|
26
|
+
formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext$1) => Promise<IResolverTransaction | null>;
|
|
27
|
+
private initializationPromise;
|
|
25
28
|
/**
|
|
26
29
|
* Creates an instance of OCAPResolver.
|
|
27
30
|
* @param params Parameters to bootstrap the resolver
|
|
28
31
|
* @param params.statedb @ocap/statedb adapter
|
|
29
32
|
* @param params.indexdb @ocap/indexdb adapter
|
|
33
|
+
* @param params.ledger @arcblock/ledger-core ledger instance
|
|
30
34
|
* @param params.config @ocap/config object
|
|
31
35
|
* @param params.filter bloom filter to do anti-replay check
|
|
32
36
|
* @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
|
|
@@ -34,6 +38,7 @@ declare class OCAPResolver implements IResolver {
|
|
|
34
38
|
constructor({
|
|
35
39
|
statedb,
|
|
36
40
|
indexdb,
|
|
41
|
+
ledger,
|
|
37
42
|
config,
|
|
38
43
|
filter,
|
|
39
44
|
validateTokenConfig,
|
|
@@ -45,10 +50,10 @@ declare class OCAPResolver implements IResolver {
|
|
|
45
50
|
}: {
|
|
46
51
|
tx: string;
|
|
47
52
|
extra?: Record<string, unknown>;
|
|
48
|
-
}, ctx?: IResolverContext): Promise<string>;
|
|
53
|
+
}, ctx?: IResolverContext$1): Promise<string>;
|
|
49
54
|
getTx({
|
|
50
55
|
hash
|
|
51
|
-
}: TRequestGetTx, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
|
|
56
|
+
}: TRequestGetTx, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
|
|
52
57
|
getBlock(): null;
|
|
53
58
|
getBlocks(): never[];
|
|
54
59
|
getUnconfirmedTxs(): never[];
|
|
@@ -63,54 +68,54 @@ declare class OCAPResolver implements IResolver {
|
|
|
63
68
|
expandContext
|
|
64
69
|
}: IGetAccountStateArgs & {
|
|
65
70
|
traceMigration?: boolean;
|
|
66
|
-
}, ctx?: IResolverContext): Promise<IResolverAccountState | null>;
|
|
71
|
+
}, ctx?: IResolverContext$1): Promise<IResolverAccountState | null>;
|
|
67
72
|
getStakeState({
|
|
68
73
|
address
|
|
69
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IResolverStakeState | null>;
|
|
74
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverStakeState | null>;
|
|
70
75
|
getRollupState({
|
|
71
76
|
address
|
|
72
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IResolverRollupState | null>;
|
|
77
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverRollupState | null>;
|
|
73
78
|
getRollupBlock({
|
|
74
79
|
hash,
|
|
75
80
|
height,
|
|
76
81
|
rollupAddress
|
|
77
|
-
}: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext): Promise<IRollupBlock | null>;
|
|
82
|
+
}: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext$1): Promise<IRollupBlock | null>;
|
|
78
83
|
getAssetState({
|
|
79
84
|
address
|
|
80
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IAssetState | null>;
|
|
85
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IAssetState | null>;
|
|
81
86
|
getEvidenceState({
|
|
82
87
|
hash
|
|
83
|
-
}: TRequestGetEvidenceState, ctx?: IResolverContext): Promise<IEvidenceState | null>;
|
|
88
|
+
}: TRequestGetEvidenceState, ctx?: IResolverContext$1): Promise<IEvidenceState | null>;
|
|
84
89
|
getFactoryState({
|
|
85
90
|
address
|
|
86
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IResolverFactoryState | null>;
|
|
91
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverFactoryState | null>;
|
|
87
92
|
getTokenState({
|
|
88
93
|
address
|
|
89
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<ITokenState | null>;
|
|
90
|
-
getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext): Promise<ITokenFactoryState | null>;
|
|
94
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenState | null>;
|
|
95
|
+
getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenFactoryState | null>;
|
|
91
96
|
getDelegateState({
|
|
92
97
|
address
|
|
93
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IDelegateState | null>;
|
|
98
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IDelegateState | null>;
|
|
94
99
|
getAccountTokens({
|
|
95
100
|
address,
|
|
96
101
|
token
|
|
97
|
-
}: IGetAccountTokensArgs, ctx?: IResolverContext): Promise<ITokenInfo[]>;
|
|
102
|
+
}: IGetAccountTokensArgs, ctx?: IResolverContext$1): Promise<ITokenInfo[]>;
|
|
98
103
|
getForgeState(): Promise<Record<string, unknown>>;
|
|
99
104
|
getForgeStats(): Promise<IResolverForgeStats>;
|
|
100
|
-
listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
|
|
101
|
-
listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext): Promise<IResolverListAssetsResult>;
|
|
102
|
-
listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
|
|
103
|
-
listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext): Promise<IResolverListFactoriesResult>;
|
|
105
|
+
listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
|
|
106
|
+
listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext$1): Promise<IResolverListAssetsResult>;
|
|
107
|
+
listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
|
|
108
|
+
listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext$1): Promise<IResolverListFactoriesResult>;
|
|
104
109
|
listTopAccounts(args?: Partial<TRequestListTopAccounts>): Promise<IResolverListAccountsResult>;
|
|
105
|
-
listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext): Promise<IResolverListTokensResult>;
|
|
106
|
-
listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext): Promise<IResolverListTokenFactoriesResult>;
|
|
107
|
-
listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext): Promise<IResolverListStakesResult>;
|
|
108
|
-
listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext): Promise<IResolverListRollupsResult>;
|
|
109
|
-
listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext): Promise<IResolverListRollupBlocksResult>;
|
|
110
|
-
listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext): Promise<IResolverListRollupValidatorsResult>;
|
|
111
|
-
listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext): Promise<IResolverListDelegationsResult>;
|
|
112
|
-
verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext): Promise<TVerifyAccountRiskResult | null> | null;
|
|
113
|
-
listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext): Promise<ITokenFlowsResult> | never[];
|
|
110
|
+
listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext$1): Promise<IResolverListTokensResult>;
|
|
111
|
+
listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext$1): Promise<IResolverListTokenFactoriesResult>;
|
|
112
|
+
listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext$1): Promise<IResolverListStakesResult>;
|
|
113
|
+
listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext$1): Promise<IResolverListRollupsResult>;
|
|
114
|
+
listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext$1): Promise<IResolverListRollupBlocksResult>;
|
|
115
|
+
listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext$1): Promise<IResolverListRollupValidatorsResult>;
|
|
116
|
+
listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext$1): Promise<IResolverListDelegationsResult>;
|
|
117
|
+
verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext$1): Promise<TVerifyAccountRiskResult | null> | null;
|
|
118
|
+
listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext$1): Promise<ITokenFlowsResult> | never[];
|
|
114
119
|
search(args: Partial<TRequestSearch>): Promise<{
|
|
115
120
|
results: Array<{
|
|
116
121
|
type: string;
|
|
@@ -122,6 +127,7 @@ declare class OCAPResolver implements IResolver {
|
|
|
122
127
|
max: string;
|
|
123
128
|
};
|
|
124
129
|
};
|
|
130
|
+
shutdown(): Promise<void>;
|
|
125
131
|
listBlocks(): {
|
|
126
132
|
blocks: never[];
|
|
127
133
|
};
|
|
@@ -140,8 +146,8 @@ declare class OCAPResolver implements IResolver {
|
|
|
140
146
|
expandContext,
|
|
141
147
|
ctx
|
|
142
148
|
}: IGetStateParams): Promise<T | null>;
|
|
143
|
-
_doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext): Promise<Record<string, unknown>>;
|
|
144
|
-
_formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
|
|
149
|
+
_doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext$1): Promise<Record<string, unknown>>;
|
|
150
|
+
_formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
|
|
145
151
|
_getAllResults<T>(dataKey: string, fn: (paging: IResolverPaging) => Promise<any>, limit?: number): Promise<T[]>;
|
|
146
152
|
formatTokenArray(tokens: ITokenInfo[]): Promise<ITokenInfo[]>;
|
|
147
153
|
formatTokenMap(tokens: Record<string, string>): Promise<ITokenInfo[]>;
|
package/esm/index.mjs
CHANGED
|
@@ -242,16 +242,19 @@ var OCAPResolver = class {
|
|
|
242
242
|
* @param params Parameters to bootstrap the resolver
|
|
243
243
|
* @param params.statedb @ocap/statedb adapter
|
|
244
244
|
* @param params.indexdb @ocap/indexdb adapter
|
|
245
|
+
* @param params.ledger @arcblock/ledger-core ledger instance
|
|
245
246
|
* @param params.config @ocap/config object
|
|
246
247
|
* @param params.filter bloom filter to do anti-replay check
|
|
247
248
|
* @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
|
|
248
249
|
*/
|
|
249
|
-
constructor({ statedb, indexdb, config, filter, validateTokenConfig = true, logger }) {
|
|
250
|
+
constructor({ statedb, indexdb, ledger, config, filter, validateTokenConfig = true, logger }) {
|
|
250
251
|
if (!statedb) throw new Error("OCAP Resolver requires a valid statedb implementation to work");
|
|
251
252
|
if (!indexdb) throw new Error("OCAP Resolver requires a valid indexdb implementation to work");
|
|
253
|
+
if (!ledger) throw new Error("OCAP Resolver requires a valid ledger implementation to work");
|
|
252
254
|
this.logger = logger || console;
|
|
253
255
|
this.statedb = statedb;
|
|
254
256
|
this.indexdb = indexdb;
|
|
257
|
+
this.ledger = ledger;
|
|
255
258
|
this.filter = filter;
|
|
256
259
|
this.config = Object.freeze(Config.validate(config));
|
|
257
260
|
this.chainAddr = md5(config.chainId);
|
|
@@ -277,7 +280,7 @@ var OCAPResolver = class {
|
|
|
277
280
|
this.formatTx = this._formatTx.bind(this);
|
|
278
281
|
if (validateTokenConfig) this.validateTokenConfig();
|
|
279
282
|
this.connectIndexDB();
|
|
280
|
-
this.initializeStateDB().catch((err) => {
|
|
283
|
+
this.initializationPromise = this.initializeStateDB().catch((err) => {
|
|
281
284
|
this.logger.error("Failed to initialize statedb:", err.message);
|
|
282
285
|
process.exit(1);
|
|
283
286
|
});
|
|
@@ -293,6 +296,7 @@ var OCAPResolver = class {
|
|
|
293
296
|
txBase64,
|
|
294
297
|
statedb: this.statedb,
|
|
295
298
|
indexdb: this.indexdb,
|
|
299
|
+
ledger: this.ledger,
|
|
296
300
|
config: this.config,
|
|
297
301
|
filter: this.filter,
|
|
298
302
|
logger: this.logger,
|
|
@@ -304,6 +308,7 @@ var OCAPResolver = class {
|
|
|
304
308
|
return new Promise((resolve, reject) => {
|
|
305
309
|
const task = async () => {
|
|
306
310
|
try {
|
|
311
|
+
await this.initializationPromise;
|
|
307
312
|
resolve((await this.executor.execute(context)).txHash);
|
|
308
313
|
} catch (err) {
|
|
309
314
|
reject(err);
|
|
@@ -776,6 +781,14 @@ var OCAPResolver = class {
|
|
|
776
781
|
totalGas = totalGas.add(new BN(txGas.price).mul(new BN(txGas.updateState)).mul(new BN(estimate.update)));
|
|
777
782
|
return { estimate: { max: totalGas.toString(10) } };
|
|
778
783
|
}
|
|
784
|
+
async shutdown() {
|
|
785
|
+
if (this.queue) {
|
|
786
|
+
this.queue.autostart = false;
|
|
787
|
+
if (this.queue.length > 0) await new Promise((resolve) => {
|
|
788
|
+
this.queue.on("end", resolve);
|
|
789
|
+
});
|
|
790
|
+
}
|
|
791
|
+
}
|
|
779
792
|
listBlocks() {
|
|
780
793
|
return { blocks: [] };
|
|
781
794
|
}
|
|
@@ -825,7 +838,7 @@ var OCAPResolver = class {
|
|
|
825
838
|
}, { commitMessage: "initialize chain" });
|
|
826
839
|
if (this.tokenItx) {
|
|
827
840
|
await this.runAsLambda(async (txn) => {
|
|
828
|
-
const existToken = await this.statedb.token.get(this.tokenItx.address);
|
|
841
|
+
const existToken = await this.statedb.token.get(this.tokenItx.address, { txn });
|
|
829
842
|
if (!existToken) {
|
|
830
843
|
const state = tokenState.create(this.tokenItx, context);
|
|
831
844
|
const result = await tokenDB.create(this.tokenItx.address, state, { txn });
|
|
@@ -1108,6 +1121,7 @@ var OCAPResolver = class {
|
|
|
1108
1121
|
const tasks = Object.keys(tokens).map((address) => this.tokenCache.get(address));
|
|
1109
1122
|
const tokenStates = await Promise.all(tasks);
|
|
1110
1123
|
return Object.keys(tokens).map((address) => ({
|
|
1124
|
+
address,
|
|
1111
1125
|
value: tokens[address],
|
|
1112
1126
|
...extractTokenMeta(address, tokenStates)
|
|
1113
1127
|
}));
|
package/esm/types.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
|
|
1
|
+
import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, ILedger, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
|
|
2
2
|
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
|
|
@@ -81,6 +81,7 @@ interface ITrustedAccountConfig {
|
|
|
81
81
|
interface IResolverParams {
|
|
82
82
|
statedb: IStateDB$1;
|
|
83
83
|
indexdb: IIndexDB$1;
|
|
84
|
+
ledger: ILedger;
|
|
84
85
|
config: IChainConfig$1;
|
|
85
86
|
filter?: IFilter;
|
|
86
87
|
validateTokenConfig?: boolean;
|
package/lib/index.cjs
CHANGED
|
@@ -256,16 +256,19 @@ var OCAPResolver = class {
|
|
|
256
256
|
* @param params Parameters to bootstrap the resolver
|
|
257
257
|
* @param params.statedb @ocap/statedb adapter
|
|
258
258
|
* @param params.indexdb @ocap/indexdb adapter
|
|
259
|
+
* @param params.ledger @arcblock/ledger-core ledger instance
|
|
259
260
|
* @param params.config @ocap/config object
|
|
260
261
|
* @param params.filter bloom filter to do anti-replay check
|
|
261
262
|
* @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
|
|
262
263
|
*/
|
|
263
|
-
constructor({ statedb, indexdb, config, filter, validateTokenConfig = true, logger }) {
|
|
264
|
+
constructor({ statedb, indexdb, ledger, config, filter, validateTokenConfig = true, logger }) {
|
|
264
265
|
if (!statedb) throw new Error("OCAP Resolver requires a valid statedb implementation to work");
|
|
265
266
|
if (!indexdb) throw new Error("OCAP Resolver requires a valid indexdb implementation to work");
|
|
267
|
+
if (!ledger) throw new Error("OCAP Resolver requires a valid ledger implementation to work");
|
|
266
268
|
this.logger = logger || console;
|
|
267
269
|
this.statedb = statedb;
|
|
268
270
|
this.indexdb = indexdb;
|
|
271
|
+
this.ledger = ledger;
|
|
269
272
|
this.filter = filter;
|
|
270
273
|
this.config = Object.freeze(_ocap_config.validate(config));
|
|
271
274
|
this.chainAddr = (0, _ocap_util_lib_md5.md5)(config.chainId);
|
|
@@ -291,7 +294,7 @@ var OCAPResolver = class {
|
|
|
291
294
|
this.formatTx = this._formatTx.bind(this);
|
|
292
295
|
if (validateTokenConfig) this.validateTokenConfig();
|
|
293
296
|
this.connectIndexDB();
|
|
294
|
-
this.initializeStateDB().catch((err) => {
|
|
297
|
+
this.initializationPromise = this.initializeStateDB().catch((err) => {
|
|
295
298
|
this.logger.error("Failed to initialize statedb:", err.message);
|
|
296
299
|
process.exit(1);
|
|
297
300
|
});
|
|
@@ -307,6 +310,7 @@ var OCAPResolver = class {
|
|
|
307
310
|
txBase64,
|
|
308
311
|
statedb: this.statedb,
|
|
309
312
|
indexdb: this.indexdb,
|
|
313
|
+
ledger: this.ledger,
|
|
310
314
|
config: this.config,
|
|
311
315
|
filter: this.filter,
|
|
312
316
|
logger: this.logger,
|
|
@@ -318,6 +322,7 @@ var OCAPResolver = class {
|
|
|
318
322
|
return new Promise((resolve, reject) => {
|
|
319
323
|
const task = async () => {
|
|
320
324
|
try {
|
|
325
|
+
await this.initializationPromise;
|
|
321
326
|
resolve((await this.executor.execute(context)).txHash);
|
|
322
327
|
} catch (err) {
|
|
323
328
|
reject(err);
|
|
@@ -790,6 +795,14 @@ var OCAPResolver = class {
|
|
|
790
795
|
totalGas = totalGas.add(new _ocap_util.BN(txGas.price).mul(new _ocap_util.BN(txGas.updateState)).mul(new _ocap_util.BN(estimate.update)));
|
|
791
796
|
return { estimate: { max: totalGas.toString(10) } };
|
|
792
797
|
}
|
|
798
|
+
async shutdown() {
|
|
799
|
+
if (this.queue) {
|
|
800
|
+
this.queue.autostart = false;
|
|
801
|
+
if (this.queue.length > 0) await new Promise((resolve) => {
|
|
802
|
+
this.queue.on("end", resolve);
|
|
803
|
+
});
|
|
804
|
+
}
|
|
805
|
+
}
|
|
793
806
|
listBlocks() {
|
|
794
807
|
return { blocks: [] };
|
|
795
808
|
}
|
|
@@ -839,7 +852,7 @@ var OCAPResolver = class {
|
|
|
839
852
|
}, { commitMessage: "initialize chain" });
|
|
840
853
|
if (this.tokenItx) {
|
|
841
854
|
await this.runAsLambda(async (txn) => {
|
|
842
|
-
const existToken = await this.statedb.token.get(this.tokenItx.address);
|
|
855
|
+
const existToken = await this.statedb.token.get(this.tokenItx.address, { txn });
|
|
843
856
|
if (!existToken) {
|
|
844
857
|
const state = tokenState.create(this.tokenItx, context);
|
|
845
858
|
const result = await tokenDB.create(this.tokenItx.address, state, { txn });
|
|
@@ -1122,6 +1135,7 @@ var OCAPResolver = class {
|
|
|
1122
1135
|
const tasks = Object.keys(tokens).map((address) => this.tokenCache.get(address));
|
|
1123
1136
|
const tokenStates = await Promise.all(tasks);
|
|
1124
1137
|
return Object.keys(tokens).map((address) => ({
|
|
1138
|
+
address,
|
|
1125
1139
|
value: tokens[address],
|
|
1126
1140
|
...extractTokenMeta(address, tokenStates)
|
|
1127
1141
|
}));
|
package/lib/index.d.cts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB, IListChunksParams, IPaginatedResult, IPipelineLogger, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.cjs";
|
|
1
|
+
import { IAddressArgs, IAssetState, IChainConfig, IChunkIterator, IDataObject, IDelegateState, IEvidenceState, IFilter, IGetAccountStateArgs, IGetAccountTokensArgs, IGetStateParams, IIndexDB as IIndexDB$1, IListChunksParams, IPaginatedResult, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverParams, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverValidatorsInfo, IRollupBlock, IStateDB as IStateDB$1, ITokenCache, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenState, TIndexedTokenState as TIndexedTokenState$1, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TTokenDistribution, TVerifyAccountRiskResult } from "./types.cjs";
|
|
2
2
|
import { MigrationChainManager } from "./migration-chain.cjs";
|
|
3
3
|
import { TokenDistributionManager } from "./token-distribution.cjs";
|
|
4
|
+
import { ILedger } from "@ocap/types";
|
|
4
5
|
import { createExecutor } from "@ocap/tx-protocols";
|
|
5
6
|
import Queue from "queue";
|
|
6
7
|
|
|
@@ -8,25 +9,28 @@ import Queue from "queue";
|
|
|
8
9
|
declare const formatData: (data: IDataObject | null | undefined) => IDataObject | null | undefined;
|
|
9
10
|
declare const formatDelegationOps: (state: IDelegateState) => any;
|
|
10
11
|
declare class OCAPResolver implements IResolver {
|
|
11
|
-
statedb: IStateDB;
|
|
12
|
-
indexdb: IIndexDB;
|
|
12
|
+
statedb: IStateDB$1;
|
|
13
|
+
indexdb: IIndexDB$1;
|
|
14
|
+
ledger: ILedger;
|
|
13
15
|
filter?: IFilter;
|
|
14
16
|
config: IChainConfig;
|
|
15
17
|
chainAddr: string;
|
|
16
|
-
tokenItx: TIndexedTokenState | null;
|
|
18
|
+
tokenItx: TIndexedTokenState$1 | null;
|
|
17
19
|
consensus: string;
|
|
18
20
|
queue: Queue;
|
|
19
21
|
tokenCache: ITokenCache;
|
|
20
22
|
tokenDistribution: TokenDistributionManager;
|
|
21
23
|
executor: ReturnType<typeof createExecutor>;
|
|
22
|
-
logger: IPipelineLogger;
|
|
24
|
+
logger: IPipelineLogger$1;
|
|
23
25
|
migrationChain?: MigrationChainManager;
|
|
24
|
-
formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext) => Promise<IResolverTransaction | null>;
|
|
26
|
+
formatTx: (tx: IResolverTransaction | null, ctx?: IResolverContext$1) => Promise<IResolverTransaction | null>;
|
|
27
|
+
private initializationPromise;
|
|
25
28
|
/**
|
|
26
29
|
* Creates an instance of OCAPResolver.
|
|
27
30
|
* @param params Parameters to bootstrap the resolver
|
|
28
31
|
* @param params.statedb @ocap/statedb adapter
|
|
29
32
|
* @param params.indexdb @ocap/indexdb adapter
|
|
33
|
+
* @param params.ledger @arcblock/ledger-core ledger instance
|
|
30
34
|
* @param params.config @ocap/config object
|
|
31
35
|
* @param params.filter bloom filter to do anti-replay check
|
|
32
36
|
* @param params.validateTokenConfig should we validate token supply and token-holder balance, should be disabled when starting an existing chain
|
|
@@ -34,6 +38,7 @@ declare class OCAPResolver implements IResolver {
|
|
|
34
38
|
constructor({
|
|
35
39
|
statedb,
|
|
36
40
|
indexdb,
|
|
41
|
+
ledger,
|
|
37
42
|
config,
|
|
38
43
|
filter,
|
|
39
44
|
validateTokenConfig,
|
|
@@ -45,10 +50,10 @@ declare class OCAPResolver implements IResolver {
|
|
|
45
50
|
}: {
|
|
46
51
|
tx: string;
|
|
47
52
|
extra?: Record<string, unknown>;
|
|
48
|
-
}, ctx?: IResolverContext): Promise<string>;
|
|
53
|
+
}, ctx?: IResolverContext$1): Promise<string>;
|
|
49
54
|
getTx({
|
|
50
55
|
hash
|
|
51
|
-
}: TRequestGetTx, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
|
|
56
|
+
}: TRequestGetTx, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
|
|
52
57
|
getBlock(): null;
|
|
53
58
|
getBlocks(): never[];
|
|
54
59
|
getUnconfirmedTxs(): never[];
|
|
@@ -63,54 +68,54 @@ declare class OCAPResolver implements IResolver {
|
|
|
63
68
|
expandContext
|
|
64
69
|
}: IGetAccountStateArgs & {
|
|
65
70
|
traceMigration?: boolean;
|
|
66
|
-
}, ctx?: IResolverContext): Promise<IResolverAccountState | null>;
|
|
71
|
+
}, ctx?: IResolverContext$1): Promise<IResolverAccountState | null>;
|
|
67
72
|
getStakeState({
|
|
68
73
|
address
|
|
69
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IResolverStakeState | null>;
|
|
74
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverStakeState | null>;
|
|
70
75
|
getRollupState({
|
|
71
76
|
address
|
|
72
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IResolverRollupState | null>;
|
|
77
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverRollupState | null>;
|
|
73
78
|
getRollupBlock({
|
|
74
79
|
hash,
|
|
75
80
|
height,
|
|
76
81
|
rollupAddress
|
|
77
|
-
}: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext): Promise<IRollupBlock | null>;
|
|
82
|
+
}: Partial<TRequestGetRollupBlock>, ctx?: IResolverContext$1): Promise<IRollupBlock | null>;
|
|
78
83
|
getAssetState({
|
|
79
84
|
address
|
|
80
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IAssetState | null>;
|
|
85
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IAssetState | null>;
|
|
81
86
|
getEvidenceState({
|
|
82
87
|
hash
|
|
83
|
-
}: TRequestGetEvidenceState, ctx?: IResolverContext): Promise<IEvidenceState | null>;
|
|
88
|
+
}: TRequestGetEvidenceState, ctx?: IResolverContext$1): Promise<IEvidenceState | null>;
|
|
84
89
|
getFactoryState({
|
|
85
90
|
address
|
|
86
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IResolverFactoryState | null>;
|
|
91
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IResolverFactoryState | null>;
|
|
87
92
|
getTokenState({
|
|
88
93
|
address
|
|
89
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<ITokenState | null>;
|
|
90
|
-
getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext): Promise<ITokenFactoryState | null>;
|
|
94
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenState | null>;
|
|
95
|
+
getTokenFactoryState(args: IAddressArgs, ctx?: IResolverContext$1): Promise<ITokenFactoryState | null>;
|
|
91
96
|
getDelegateState({
|
|
92
97
|
address
|
|
93
|
-
}: IAddressArgs, ctx?: IResolverContext): Promise<IDelegateState | null>;
|
|
98
|
+
}: IAddressArgs, ctx?: IResolverContext$1): Promise<IDelegateState | null>;
|
|
94
99
|
getAccountTokens({
|
|
95
100
|
address,
|
|
96
101
|
token
|
|
97
|
-
}: IGetAccountTokensArgs, ctx?: IResolverContext): Promise<ITokenInfo[]>;
|
|
102
|
+
}: IGetAccountTokensArgs, ctx?: IResolverContext$1): Promise<ITokenInfo[]>;
|
|
98
103
|
getForgeState(): Promise<Record<string, unknown>>;
|
|
99
104
|
getForgeStats(): Promise<IResolverForgeStats>;
|
|
100
|
-
listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
|
|
101
|
-
listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext): Promise<IResolverListAssetsResult>;
|
|
102
|
-
listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext): Promise<IResolverListTransactionsResult>;
|
|
103
|
-
listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext): Promise<IResolverListFactoriesResult>;
|
|
105
|
+
listTransactions(args?: Partial<TRequestListTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
|
|
106
|
+
listAssets(args?: Partial<TRequestListAssets>, ctx?: IResolverContext$1): Promise<IResolverListAssetsResult>;
|
|
107
|
+
listAssetTransactions(args?: Partial<TRequestListAssetTransactions>, ctx?: IResolverContext$1): Promise<IResolverListTransactionsResult>;
|
|
108
|
+
listFactories(args?: Partial<TRequestListFactories>, ctx?: IResolverContext$1): Promise<IResolverListFactoriesResult>;
|
|
104
109
|
listTopAccounts(args?: Partial<TRequestListTopAccounts>): Promise<IResolverListAccountsResult>;
|
|
105
|
-
listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext): Promise<IResolverListTokensResult>;
|
|
106
|
-
listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext): Promise<IResolverListTokenFactoriesResult>;
|
|
107
|
-
listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext): Promise<IResolverListStakesResult>;
|
|
108
|
-
listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext): Promise<IResolverListRollupsResult>;
|
|
109
|
-
listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext): Promise<IResolverListRollupBlocksResult>;
|
|
110
|
-
listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext): Promise<IResolverListRollupValidatorsResult>;
|
|
111
|
-
listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext): Promise<IResolverListDelegationsResult>;
|
|
112
|
-
verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext): Promise<TVerifyAccountRiskResult | null> | null;
|
|
113
|
-
listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext): Promise<ITokenFlowsResult> | never[];
|
|
110
|
+
listTokens(args?: Partial<TRequestListTokens>, ctx?: IResolverContext$1): Promise<IResolverListTokensResult>;
|
|
111
|
+
listTokenFactories(args?: Partial<TRequestListTokenFactories>, ctx?: IResolverContext$1): Promise<IResolverListTokenFactoriesResult>;
|
|
112
|
+
listStakes(args?: Partial<TRequestListStakes>, ctx?: IResolverContext$1): Promise<IResolverListStakesResult>;
|
|
113
|
+
listRollups(args?: Partial<TRequestListRollups>, ctx?: IResolverContext$1): Promise<IResolverListRollupsResult>;
|
|
114
|
+
listRollupBlocks(args?: Partial<TRequestListRollupBlocks>, ctx?: IResolverContext$1): Promise<IResolverListRollupBlocksResult>;
|
|
115
|
+
listRollupValidators(args?: Partial<TRequestListRollupValidators>, ctx?: IResolverContext$1): Promise<IResolverListRollupValidatorsResult>;
|
|
116
|
+
listDelegations(args?: Partial<TRequestListDelegations>, ctx?: IResolverContext$1): Promise<IResolverListDelegationsResult>;
|
|
117
|
+
verifyAccountRisk(args?: Partial<TRequestVerifyAccountRisk>, ctx?: IResolverContext$1): Promise<TVerifyAccountRiskResult | null> | null;
|
|
118
|
+
listTokenFlows(args?: Partial<TRequestListTokenFlows>, ctx?: IResolverContext$1): Promise<ITokenFlowsResult> | never[];
|
|
114
119
|
search(args: Partial<TRequestSearch>): Promise<{
|
|
115
120
|
results: Array<{
|
|
116
121
|
type: string;
|
|
@@ -122,6 +127,7 @@ declare class OCAPResolver implements IResolver {
|
|
|
122
127
|
max: string;
|
|
123
128
|
};
|
|
124
129
|
};
|
|
130
|
+
shutdown(): Promise<void>;
|
|
125
131
|
listBlocks(): {
|
|
126
132
|
blocks: never[];
|
|
127
133
|
};
|
|
@@ -140,8 +146,8 @@ declare class OCAPResolver implements IResolver {
|
|
|
140
146
|
expandContext,
|
|
141
147
|
ctx
|
|
142
148
|
}: IGetStateParams): Promise<T | null>;
|
|
143
|
-
_doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext): Promise<Record<string, unknown>>;
|
|
144
|
-
_formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext): Promise<IResolverTransaction | null>;
|
|
149
|
+
_doPaginatedSearch<TArgs extends Record<string, unknown>>(fn: string, args: TArgs, listKey: string, dataKey?: string | string[] | null, ctx?: IResolverContext$1): Promise<Record<string, unknown>>;
|
|
150
|
+
_formatTx(tx: IResolverTransaction | null, ctx?: IResolverContext$1): Promise<IResolverTransaction | null>;
|
|
145
151
|
_getAllResults<T>(dataKey: string, fn: (paging: IResolverPaging) => Promise<any>, limit?: number): Promise<T[]>;
|
|
146
152
|
formatTokenArray(tokens: ITokenInfo[]): Promise<ITokenInfo[]>;
|
|
147
153
|
formatTokenMap(tokens: Record<string, string>): Promise<ITokenInfo[]>;
|
package/lib/types.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
|
|
1
|
+
import { Address, BN, DirectionMap, Hash, IAccountState, IAddressArgs, IAny, IAssetFactoryState, IAssetState, IBalanceTable, IChainConfig, IChainConfig as IChainConfig$1, IChainState, IDelegateState, IEvidenceState, IExecutedContext, IForeignToken, IGetAccountStateArgs, IGetAccountTokensArgs, IIndexDB, IIndexDB as IIndexDB$1, IIndexTable, IIndexTable as IIndexTable$1, ILedger, IListAccountsResult, IListAssetsResult, IListDelegationsResult, IListFactoriesResult, IListRollupBlocksResult, IListRollupValidatorsResult, IListRollupsResult, IListStakesResult, IListTokenFactoriesResult, IListTokensResult, IListTransactionsResult, IOperationContext, IPipelineLogger, IPipelineLogger as IPipelineLogger$1, IResolver, IResolverAccountState, IResolverChainInfo, IResolverContext, IResolverContext as IResolverContext$1, IResolverFactoryState, IResolverForgeStats, IResolverListAccountsResult, IResolverListAssetsResult, IResolverListDelegationsResult, IResolverListFactoriesResult, IResolverListRollupBlocksResult, IResolverListRollupValidatorsResult, IResolverListRollupsResult, IResolverListStakesResult, IResolverListTokenFactoriesResult, IResolverListTokensResult, IResolverListTransactionsResult, IResolverNetInfo, IResolverNodeInfo, IResolverPaging, IResolverPaging as IResolverPaging$1, IResolverRollupState, IResolverStakeState, IResolverTransaction, IResolverTxItxJson, IResolverValidatorsInfo, IRollupBlock, IRollupState, IRollupValidator, IStakeState, IStateContext, IStateDB, IStateDB as IStateDB$1, IStateTable, IStateTable as IStateTable$1, ITokenConfig, ITokenFactoryState, ITokenFlowsResult, ITokenInfo, ITokenInfo as ITokenInfo$1, ITokenMetadata, ITokenState, ITransactionConfig, ITxGasConfig, ITxStakeConfig, ITxState, IVaultsConfig, IndexTableTypeMap, Promisable, TAccountFilter, TAccountToken, TAddressFilter, TAssetFilter, TDelegationFilter, TFactoryFilter, TIndexedAccountState, TIndexedAssetState, TIndexedDelegationState, TIndexedFactoryState, TIndexedRollupBlock, TIndexedRollupState, TIndexedRollupValidator, TIndexedStakeState, TIndexedTokenFactoryState, TIndexedTokenState, TIndexedTokenState as TIndexedTokenState$1, TIndexedTransaction, TPage, TPageInfo, TPageOrder, TRangeFilter, TReceiptChange, TRequestEstimateGas, TRequestGetEvidenceState, TRequestGetRollupBlock, TRequestGetTokenDistribution, TRequestGetTx, TRequestListAssetTransactions, TRequestListAssets, TRequestListDelegations, TRequestListFactories, TRequestListRollupBlocks, TRequestListRollupValidators, TRequestListRollups, TRequestListStakes, TRequestListTokenFactories, TRequestListTokenFlows, TRequestListTokens, TRequestListTopAccounts, TRequestListTransactions, TRequestSearch, TRequestVerifyAccountRisk, TRollupFilter, TSearchResult, TStakeFilter, TTimeFilter, TTokenDistribution, TTokenFactoryFilter, TTokenFilter, TTokenMeta, TTransactionReceipt, TTxFilter, TTypeFilter, TValidatorFilter, TValidityFilter, TVerifyAccountRiskResult, TokenBalanceMap, ValidityMap } from "@ocap/types";
|
|
2
2
|
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
|
|
@@ -81,6 +81,7 @@ interface ITrustedAccountConfig {
|
|
|
81
81
|
interface IResolverParams {
|
|
82
82
|
statedb: IStateDB$1;
|
|
83
83
|
indexdb: IIndexDB$1;
|
|
84
|
+
ledger: ILedger;
|
|
84
85
|
config: IChainConfig$1;
|
|
85
86
|
filter?: IFilter;
|
|
86
87
|
validateTokenConfig?: boolean;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "1.29.
|
|
6
|
+
"version": "1.29.6",
|
|
7
7
|
"description": "GraphQL resolver built upon ocap statedb and GQL layer",
|
|
8
8
|
"type": "module",
|
|
9
9
|
"main": "./lib/index.cjs",
|
|
@@ -36,35 +36,36 @@
|
|
|
36
36
|
"lint": "biome check",
|
|
37
37
|
"lint:fix": "biome check --write",
|
|
38
38
|
"test": "bun test",
|
|
39
|
-
"coverage": "npm run test -- --coverage"
|
|
39
|
+
"coverage": "npm run test -- --coverage",
|
|
40
|
+
"clean": "rm -rf lib esm"
|
|
40
41
|
},
|
|
41
42
|
"keywords": [],
|
|
42
43
|
"author": "wangshijun <wangshijun2010@gmail.com> (http://github.com/wangshijun)",
|
|
43
44
|
"license": "MIT",
|
|
44
45
|
"devDependencies": {
|
|
45
|
-
"@arcblock/jwt": "1.29.
|
|
46
|
-
"@ocap/indexdb-memory": "1.29.
|
|
47
|
-
"@ocap/statedb-memory": "1.29.
|
|
46
|
+
"@arcblock/jwt": "1.29.6",
|
|
47
|
+
"@ocap/indexdb-memory": "1.29.6",
|
|
48
|
+
"@ocap/statedb-memory": "1.29.6",
|
|
48
49
|
"@types/express": "^4.17.23",
|
|
49
50
|
"@types/lodash": "^4.17.16",
|
|
50
51
|
"@types/node": "^20.10.0",
|
|
51
52
|
"tsdown": "^0.18.4"
|
|
52
53
|
},
|
|
53
54
|
"dependencies": {
|
|
54
|
-
"@arcblock/did": "1.29.
|
|
55
|
-
"@arcblock/did-ext": "1.29.
|
|
56
|
-
"@arcblock/did-util": "1.29.
|
|
55
|
+
"@arcblock/did": "1.29.6",
|
|
56
|
+
"@arcblock/did-ext": "1.29.6",
|
|
57
|
+
"@arcblock/did-util": "1.29.6",
|
|
57
58
|
"@arcblock/nft-display": "^3.2.3",
|
|
58
|
-
"@arcblock/validator": "1.29.
|
|
59
|
-
"@ocap/config": "1.29.
|
|
60
|
-
"@ocap/indexdb": "1.29.
|
|
61
|
-
"@ocap/mcrypto": "1.29.
|
|
62
|
-
"@ocap/message": "1.29.
|
|
63
|
-
"@ocap/state": "1.29.
|
|
64
|
-
"@ocap/tx-protocols": "1.29.
|
|
65
|
-
"@ocap/types": "1.29.
|
|
66
|
-
"@ocap/util": "1.29.
|
|
67
|
-
"@ocap/wallet": "1.29.
|
|
59
|
+
"@arcblock/validator": "1.29.6",
|
|
60
|
+
"@ocap/config": "1.29.6",
|
|
61
|
+
"@ocap/indexdb": "1.29.6",
|
|
62
|
+
"@ocap/mcrypto": "1.29.6",
|
|
63
|
+
"@ocap/message": "1.29.6",
|
|
64
|
+
"@ocap/state": "1.29.6",
|
|
65
|
+
"@ocap/tx-protocols": "1.29.6",
|
|
66
|
+
"@ocap/types": "1.29.6",
|
|
67
|
+
"@ocap/util": "1.29.6",
|
|
68
|
+
"@ocap/wallet": "1.29.6",
|
|
68
69
|
"debug": "^4.4.3",
|
|
69
70
|
"express": "^4.22.1",
|
|
70
71
|
"lodash": "^4.17.23",
|