@hinkal/common 0.0.1 → 0.0.2
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/README.md +3 -5
- package/package.json +1 -1
- package/src/constants/hinkal.constants.d.ts +1 -0
- package/src/constants/hinkal.constants.js +3 -0
- package/src/constants/hinkal.constants.js.map +1 -0
- package/src/constants/index.d.ts +1 -0
- package/src/constants/index.js +2 -0
- package/src/constants/index.js.map +1 -0
- package/src/event-service/AbstractEventService.d.ts +25 -0
- package/src/event-service/AbstractEventService.js +90 -0
- package/src/event-service/AbstractEventService.js.map +1 -0
- package/src/event-service/index.d.ts +1 -0
- package/src/event-service/index.js +2 -0
- package/src/event-service/index.js.map +1 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/snapshot/AbstractAccessTokenSnapshotService.d.ts +1 -1
- package/src/snapshot/AbstractAccessTokenSnapshotService.js +1 -1
- package/src/snapshot/AbstractAccessTokenSnapshotService.js.map +1 -1
- package/src/snapshot/AbstractCommitmentsSnapshotService.d.ts +1 -1
- package/src/snapshot/AbstractCommitmentsSnapshotService.js +1 -1
- package/src/snapshot/AbstractCommitmentsSnapshotService.js.map +1 -1
- package/src/snapshot/AbstractNullifierSnapshotService.d.ts +1 -1
- package/src/snapshot/AbstractNullifierSnapshotService.js +1 -1
- package/src/snapshot/AbstractNullifierSnapshotService.js.map +1 -1
- package/src/snapshot/AbstractSnapshotService.d.ts +6 -22
- package/src/snapshot/AbstractSnapshotService.js +11 -66
- package/src/snapshot/AbstractSnapshotService.js.map +1 -1
- package/src/types/commitments.types.d.ts +4 -0
- package/src/types/external-action.types.d.ts +6 -0
- package/src/types/external-action.types.js +10 -0
- package/src/types/external-action.types.js.map +1 -0
- package/src/types/index.d.ts +1 -0
- package/src/types/index.js +1 -0
- package/src/types/index.js.map +1 -1
- package/src/utils/bigInt.utils.d.ts +1 -0
- package/src/utils/bigInt.utils.js +3 -0
- package/src/utils/bigInt.utils.js.map +1 -1
- package/src/utils/external-action.utils.d.ts +3 -0
- package/src/utils/external-action.utils.js +5 -0
- package/src/utils/external-action.utils.js.map +1 -0
- package/src/utils/index.d.ts +2 -0
- package/src/utils/index.js +2 -0
- package/src/utils/index.js.map +1 -1
- package/src/utils/resolve-sync.utils.d.ts +1 -0
- package/src/utils/resolve-sync.utils.js +3 -0
- package/src/utils/resolve-sync.utils.js.map +1 -0
package/README.md
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Hinkal Common
|
|
2
2
|
|
|
3
|
-
This
|
|
3
|
+
This package contains some common functions used in different Hinkal projects.
|
|
4
|
+
It's not supposed to be used directly. Please, use `@hinkal/react-hooks` instead.
|
|
4
5
|
|
|
5
|
-
## Building
|
|
6
|
-
|
|
7
|
-
Run `nx build shared-common` to build the library.
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CIRCOM_P = 21888242871839275222246405745257275088548364400416034343698204186575808495617n;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hinkal.constants.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/constants/hinkal.constants.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,MAAM,CAAC,MAAM,QAAQ,GAAG,8EAA8E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './hinkal.constants';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
export type NewEventListener<E> = (event: E) => unknown;
|
|
3
|
+
export interface EventConfig {
|
|
4
|
+
name: string;
|
|
5
|
+
args: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare abstract class AbstractEventService<EventType, SerializedEventType = unknown> {
|
|
8
|
+
protected readonly contract: ethers.Contract;
|
|
9
|
+
protected readonly eventConfig: EventConfig;
|
|
10
|
+
protected _latestBlockNumber: number;
|
|
11
|
+
private isReady;
|
|
12
|
+
private _onNewEvent?;
|
|
13
|
+
protected constructor(contract: ethers.Contract, eventConfig: EventConfig, initialBlockNumber: number);
|
|
14
|
+
get latestBlockNumber(): number;
|
|
15
|
+
set onNewEvent(value: NewEventListener<EventType>);
|
|
16
|
+
init(): Promise<void>;
|
|
17
|
+
protected requireReady(): void;
|
|
18
|
+
protected emitNewEvent(event: EventType): void;
|
|
19
|
+
protected retrieveEvents(fromBlockNumber: number): Promise<number>;
|
|
20
|
+
protected abstract acceptEvent(event: EventType, blockNumber: number): boolean | Promise<boolean>;
|
|
21
|
+
protected abstract mapEvent(event: SerializedEventType): EventType;
|
|
22
|
+
protected afterEventsAccepted(_events: EventType[], _blockNumber: number): Promise<unknown>;
|
|
23
|
+
private listenEvents;
|
|
24
|
+
protected handleEvent: (eventName: string, ...args: unknown[]) => Promise<void>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { resolveSync } from '../utils';
|
|
2
|
+
export class AbstractEventService {
|
|
3
|
+
constructor(contract, eventConfig, initialBlockNumber) {
|
|
4
|
+
this.isReady = false;
|
|
5
|
+
this.handleEvent = async (eventName, ...args) => {
|
|
6
|
+
const { args: eventArgsConfig } = this.eventConfig;
|
|
7
|
+
const { blockNumber } = args[args.length - 1];
|
|
8
|
+
const eventFields = args.slice(0, eventArgsConfig.length);
|
|
9
|
+
const serializedEvent = eventArgsConfig.reduce((result, fieldName, idx) => {
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
// eslint-disable-next-line no-param-reassign
|
|
13
|
+
result[fieldName] = eventFields[idx];
|
|
14
|
+
return result;
|
|
15
|
+
}, {});
|
|
16
|
+
this.requireReady();
|
|
17
|
+
if (blockNumber) {
|
|
18
|
+
const event = this.mapEvent(serializedEvent);
|
|
19
|
+
const success = await this.acceptEvent(event, blockNumber);
|
|
20
|
+
if (success) {
|
|
21
|
+
this._latestBlockNumber = blockNumber;
|
|
22
|
+
await this.afterEventsAccepted([event], blockNumber);
|
|
23
|
+
this.emitNewEvent(event);
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
await this.retrieveEvents(this._latestBlockNumber + 1);
|
|
28
|
+
};
|
|
29
|
+
this.contract = contract;
|
|
30
|
+
this.eventConfig = eventConfig;
|
|
31
|
+
this._latestBlockNumber = initialBlockNumber;
|
|
32
|
+
}
|
|
33
|
+
get latestBlockNumber() {
|
|
34
|
+
return this._latestBlockNumber;
|
|
35
|
+
}
|
|
36
|
+
set onNewEvent(value) {
|
|
37
|
+
this._onNewEvent = value;
|
|
38
|
+
}
|
|
39
|
+
async init() {
|
|
40
|
+
if (this.isReady) {
|
|
41
|
+
throw new Error('Already initialized');
|
|
42
|
+
}
|
|
43
|
+
this.isReady = true;
|
|
44
|
+
await this.retrieveEvents(this._latestBlockNumber + 1);
|
|
45
|
+
this.listenEvents();
|
|
46
|
+
}
|
|
47
|
+
requireReady() {
|
|
48
|
+
if (!this.isReady) {
|
|
49
|
+
throw new Error('Not ready');
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
emitNewEvent(event) {
|
|
53
|
+
this._onNewEvent?.(event);
|
|
54
|
+
}
|
|
55
|
+
async retrieveEvents(fromBlockNumber) {
|
|
56
|
+
this.requireReady();
|
|
57
|
+
const events = await this.contract.queryFilter(this.contract.filters[this.eventConfig.name](), fromBlockNumber);
|
|
58
|
+
if (events.length > 0) {
|
|
59
|
+
const mappedEvents = [];
|
|
60
|
+
await resolveSync(events.map((event) => async () => {
|
|
61
|
+
const { args, blockNumber } = event;
|
|
62
|
+
if (blockNumber < fromBlockNumber) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
if (!args) {
|
|
66
|
+
throw new Error('Wrong event structure');
|
|
67
|
+
}
|
|
68
|
+
const mappedEvent = this.mapEvent(args);
|
|
69
|
+
const success = await this.acceptEvent(mappedEvent, blockNumber);
|
|
70
|
+
if (!success) {
|
|
71
|
+
throw new Error('Failed to retrieve events');
|
|
72
|
+
}
|
|
73
|
+
this._latestBlockNumber = blockNumber;
|
|
74
|
+
mappedEvents.push(mappedEvent);
|
|
75
|
+
}));
|
|
76
|
+
if (mappedEvents.length > 0) {
|
|
77
|
+
await this.afterEventsAccepted(mappedEvents, this._latestBlockNumber);
|
|
78
|
+
}
|
|
79
|
+
return events.length;
|
|
80
|
+
}
|
|
81
|
+
return 0;
|
|
82
|
+
}
|
|
83
|
+
async afterEventsAccepted(_events, _blockNumber) {
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
listenEvents() {
|
|
87
|
+
this.contract.on(this.eventConfig.name, (...args) => this.handleEvent(this.eventConfig.name, ...args));
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=AbstractEventService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractEventService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/event-service/AbstractEventService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AbstractEventService';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/event-service/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
|
package/src/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './constants';
|
|
1
2
|
export * from './crypto';
|
|
2
3
|
export * from './EtherumNetwork';
|
|
3
4
|
export * from './merkle-tree';
|
|
@@ -5,3 +6,4 @@ export * from './requireEnv';
|
|
|
5
6
|
export * from './snapshot';
|
|
6
7
|
export * from './types';
|
|
7
8
|
export * from './utils';
|
|
9
|
+
export * from './event-service';
|
package/src/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './constants';
|
|
1
2
|
export * from './crypto';
|
|
2
3
|
export * from './EtherumNetwork';
|
|
3
4
|
export * from './merkle-tree';
|
|
@@ -5,4 +6,5 @@ export * from './requireEnv';
|
|
|
5
6
|
export * from './snapshot';
|
|
6
7
|
export * from './types';
|
|
7
8
|
export * from './utils';
|
|
9
|
+
export * from './event-service';
|
|
8
10
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/shared/common/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/shared/common/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC"}
|
|
@@ -19,7 +19,7 @@ export declare abstract class AbstractAccessTokenSnapshotService extends Abstrac
|
|
|
19
19
|
get senderAddresses(): Set<string>;
|
|
20
20
|
protected serializeSnapshot(snapshot: Snapshot<AccessTokenSnapshotPayload>): AccessTokenSerializedSnapshot;
|
|
21
21
|
protected deserializeSnapshot(serializedSnapshot: AccessTokenSerializedSnapshot): Snapshot<AccessTokenSnapshotPayload>;
|
|
22
|
-
protected
|
|
22
|
+
protected acceptEvent(event: AccessTokenEvent<bigint>, _blockNumber: number): boolean;
|
|
23
23
|
protected mapEvent(event: AccessTokenEvent): AccessTokenEvent<bigint>;
|
|
24
24
|
protected getSnapshotPayload(): AccessTokenSnapshotPayload;
|
|
25
25
|
protected populateSnapshot({ payload: { merkleTree, senderAddresses }, }: Snapshot<AccessTokenSnapshotPayload>): void;
|
|
@@ -44,7 +44,7 @@ export class AbstractAccessTokenSnapshotService extends AbstractSnapshotService
|
|
|
44
44
|
},
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
acceptEvent(event, _blockNumber) {
|
|
48
48
|
try {
|
|
49
49
|
this._merkleTree.insert(event.accessKey, event.index);
|
|
50
50
|
this._senderAddresses.add(event.senderAddress);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractAccessTokenSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractAccessTokenSnapshotService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAY,MAAM,2BAA2B,CAAC;AAa9E,MAAM,OAAgB,kCAAmC,SAAQ,uBAKhE;IACC,YAAY,QAAyB,EAAE,kBAA0B;QAC/D,KAAK,CACH,QAAQ,EACR;YACE,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,CAAC,WAAW,EAAE,OAAO,EAAE,eAAe,CAAC;SAC9C,EACD,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAMD,IAAI,UAAU;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAEkB,iBAAiB,CAAC,QAA8C;QACjF,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;YAChD,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC;YAC7D,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;SAC9C,CAAC;IACJ,CAAC;IAEkB,mBAAmB,CACpC,kBAAiD;QAEjD,IAAI,UAA8B,CAAC;QACnC,IAAI,kBAAkB,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,UAAU,EAAE;YACzE,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAmB,EAAE,EAAE,CAAC;gBACzF,MAAM,CAAC,GAAG,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC;aACd,CAAC,CACH,CAAC;YACF,UAAU,GAAG,UAAU,CAAC,cAAc,CACpC,IAAI,EACJ,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,EAC7C,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,EAC7C,gBAAgB,EAChB,GAAG,EACH,EAAE,CACH,CAAC;SACH;aAAM;YACL,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;SAC3D;QAED,OAAO;YACL,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB,IAAI,CAAC;YAC5D,OAAO,EAAE;gBACP,UAAU;gBACV,eAAe,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,eAAe,IAAI,EAAE,CAAC;aACnE;SACF,CAAC;IACJ,CAAC;IAES,
|
|
1
|
+
{"version":3,"file":"AbstractAccessTokenSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractAccessTokenSnapshotService.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,7 @@ export declare abstract class AbstractCommitmentsSnapshotService extends Abstrac
|
|
|
19
19
|
get encryptedOutputs(): Set<string>;
|
|
20
20
|
protected serializeSnapshot(snapshot: Snapshot<CommitmentsSnapshotPayload>): CommitmentsSerializedSnapshot;
|
|
21
21
|
protected deserializeSnapshot(serializedSnapshot: CommitmentsSerializedSnapshot): Snapshot<CommitmentsSnapshotPayload>;
|
|
22
|
-
protected
|
|
22
|
+
protected acceptEvent(event: CommitmentEvent<bigint>, _blockNumber: number): boolean;
|
|
23
23
|
protected mapEvent(event: CommitmentEvent): CommitmentEvent<bigint>;
|
|
24
24
|
protected getSnapshotPayload(): {
|
|
25
25
|
merkleTree: MerkleTree<bigint>;
|
|
@@ -44,7 +44,7 @@ export class AbstractCommitmentsSnapshotService extends AbstractSnapshotService
|
|
|
44
44
|
},
|
|
45
45
|
};
|
|
46
46
|
}
|
|
47
|
-
|
|
47
|
+
acceptEvent(event, _blockNumber) {
|
|
48
48
|
try {
|
|
49
49
|
this._merkleTree.insert(event.commitment, event.index);
|
|
50
50
|
this._encryptedOutputs.add(event.encryptedOutput);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractCommitmentsSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractCommitmentsSnapshotService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAkB,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,uBAAuB,EAAY,MAAM,2BAA2B,CAAC;AAa9E,MAAM,OAAgB,kCAAmC,SAAQ,uBAKhE;IACC,YAAY,QAAyB,EAAE,kBAA0B;QAC/D,KAAK,CACH,QAAQ,EACR;YACE,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,iBAAiB,CAAC;SACjD,EACD,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAMD,IAAI,UAAU;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,IAAI,gBAAgB;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEkB,iBAAiB,CAAC,QAA8C;QACjF,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE;YAChD,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;YAC7C,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAChE,CAAC;IACJ,CAAC;IAEkB,mBAAmB,CACpC,kBAAiD;QAEjD,IAAI,UAA8B,CAAC;QACnC,IAAI,kBAAkB,CAAC,iBAAiB,IAAI,kBAAkB,CAAC,UAAU,EAAE;YACzE,MAAM,IAAI,GAAG,IAAI,GAAG,CAClB,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAmB,EAAE,EAAE,CAAC;gBACzF,MAAM,CAAC,GAAG,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC;aACd,CAAC,CACH,CAAC;YACF,UAAU,GAAG,UAAU,CAAC,cAAc,CACpC,IAAI,EACJ,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,EAC7C,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,KAAK,CAAC,EAC7C,gBAAgB,EAChB,GAAG,EACH,EAAE,CACH,CAAC;SACH;aAAM;YACL,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;SAC3D;QAED,OAAO;YACL,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB,IAAI,CAAC;YAC5D,OAAO,EAAE;gBACP,UAAU;gBACV,gBAAgB,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,gBAAgB,IAAI,EAAE,CAAC;aACrE;SACF,CAAC;IACJ,CAAC;IAES,
|
|
1
|
+
{"version":3,"file":"AbstractCommitmentsSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractCommitmentsSnapshotService.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export declare abstract class AbstractNullifierSnapshotService extends AbstractS
|
|
|
14
14
|
get nullifiers(): Set<string>;
|
|
15
15
|
protected serializeSnapshot(snapshot: Snapshot<NullifierSnapshotPayload>): NullifierSerializedSnapshot;
|
|
16
16
|
protected deserializeSnapshot(serializedSnapshot: NullifierSerializedSnapshot): Snapshot<NullifierSnapshotPayload>;
|
|
17
|
-
protected
|
|
17
|
+
protected acceptEvent(event: NullifierEvent<string>, _blockNumber: number): boolean;
|
|
18
18
|
protected mapEvent(event: NullifierEvent<BigNumber>): NullifierEvent<string>;
|
|
19
19
|
protected getSnapshotPayload(): NullifierSnapshotPayload;
|
|
20
20
|
protected populateSnapshot({ payload: { nullifiers } }: Snapshot<NullifierSnapshotPayload>): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractNullifierSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractNullifierSnapshotService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAY,MAAM,2BAA2B,CAAC;AAW9E,MAAM,OAAgB,gCAAiC,SAAQ,uBAK9D;IACC,YAAY,QAAyB,EAAE,kBAA0B;QAC/D,KAAK,CACH,QAAQ,EACR;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC,WAAW,CAAC;SACpB,EACD,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAID,IAAI,UAAU;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEkB,iBAAiB,CAAC,QAA4C;QAC/E,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpF,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;SAC9C,CAAC;IACJ,CAAC;IAEkB,mBAAmB,CACpC,kBAA+C;QAE/C,OAAO;YACL,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB,IAAI,CAAC;YAC5D,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,UAAU,IAAI,EAAE,CAAC;aACzD;SACF,CAAC;IACJ,CAAC;IAES,
|
|
1
|
+
{"version":3,"file":"AbstractNullifierSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractNullifierSnapshotService.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAY,MAAM,2BAA2B,CAAC;AAW9E,MAAM,OAAgB,gCAAiC,SAAQ,uBAK9D;IACC,YAAY,QAAyB,EAAE,kBAA0B;QAC/D,KAAK,CACH,QAAQ,EACR;YACE,IAAI,EAAE,WAAW;YACjB,IAAI,EAAE,CAAC,WAAW,CAAC;SACpB,EACD,kBAAkB,CACnB,CAAC;IACJ,CAAC;IAID,IAAI,UAAU;QACZ,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAEkB,iBAAiB,CAAC,QAA4C;QAC/E,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpF,iBAAiB,EAAE,QAAQ,CAAC,iBAAiB;SAC9C,CAAC;IACJ,CAAC;IAEkB,mBAAmB,CACpC,kBAA+C;QAE/C,OAAO;YACL,iBAAiB,EAAE,kBAAkB,CAAC,iBAAiB,IAAI,CAAC;YAC5D,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,GAAG,CAAC,kBAAkB,CAAC,UAAU,IAAI,EAAE,CAAC;aACzD;SACF,CAAC;IACJ,CAAC;IAES,WAAW,CAAC,KAA6B,EAAE,YAAoB;QACvE,IAAI;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC;SACb;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnB,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAEkB,QAAQ,CAAC,KAAgC;QAC1D,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAC5B,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,WAAW,EAAE;SACnC,CAAC;IACJ,CAAC;IAEkB,kBAAkB;QACnC,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,WAAW;SAC7B,CAAC;IACJ,CAAC;IAEkB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAsC;QACjG,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;CACF"}
|
|
@@ -1,40 +1,24 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
|
+
import { AbstractEventService, EventConfig } from '../event-service';
|
|
2
3
|
export interface Snapshot<SnapshotPayloadType> {
|
|
3
4
|
readonly latestBlockNumber: number;
|
|
4
5
|
readonly payload: SnapshotPayloadType;
|
|
5
6
|
}
|
|
6
7
|
export type SnapshotReadyListener<SnapshotPayloadType> = (snapshot: Snapshot<SnapshotPayloadType>) => unknown;
|
|
7
|
-
export
|
|
8
|
-
export interface EventConfig {
|
|
9
|
-
name: string;
|
|
10
|
-
args: string[];
|
|
11
|
-
}
|
|
12
|
-
export declare abstract class AbstractSnapshotService<SnapshotPayloadType, EventType, SerializedSnapshotType = unknown, SerializedEventType = unknown> {
|
|
13
|
-
protected readonly contract: ethers.Contract;
|
|
14
|
-
private readonly eventConfig;
|
|
15
|
-
private _latestBlockNumber;
|
|
16
|
-
private isReady;
|
|
8
|
+
export declare abstract class AbstractSnapshotService<SnapshotPayloadType, EventType, SerializedSnapshotType = unknown, SerializedEventType = unknown> extends AbstractEventService<EventType, SerializedEventType> {
|
|
17
9
|
private _onSnapshotReady?;
|
|
18
|
-
|
|
19
|
-
constructor(contract: ethers.Contract, eventConfig: EventConfig, initialBlockNumber: number);
|
|
20
|
-
get latestBlockNumber(): number;
|
|
10
|
+
protected constructor(contract: ethers.Contract, eventConfig: EventConfig, initialBlockNumber: number);
|
|
21
11
|
set onSnapshotReady(value: SnapshotReadyListener<SnapshotPayloadType>);
|
|
22
|
-
set onNewEvent(value: NewEventListener<EventType>);
|
|
23
12
|
init(): Promise<void>;
|
|
24
|
-
protected requireReady(): void;
|
|
25
13
|
private emitSnapshotReady;
|
|
26
|
-
|
|
27
|
-
private retrieveEvents;
|
|
14
|
+
protected retrieveEvents(fromBlockNumber: number): Promise<number>;
|
|
28
15
|
private loadSnapshot;
|
|
29
|
-
protected saveSnapshot(): Promise<unknown>;
|
|
30
|
-
protected
|
|
16
|
+
protected saveSnapshot(_blockNumber: number): Promise<unknown>;
|
|
17
|
+
protected afterEventsAccepted(_events: EventType[], _blockNumber: number): Promise<unknown>;
|
|
31
18
|
protected abstract getSnapshotPayload(): SnapshotPayloadType;
|
|
32
19
|
protected abstract populateSnapshot(snapshot: Snapshot<SnapshotPayloadType>): unknown;
|
|
33
20
|
protected abstract serializeSnapshot(snapshot: Snapshot<SnapshotPayloadType>): SerializedSnapshotType;
|
|
34
21
|
protected abstract deserializeSnapshot(serializedSnapshot: SerializedSnapshotType): Snapshot<SnapshotPayloadType>;
|
|
35
|
-
protected abstract mapEvent(event: SerializedEventType): EventType;
|
|
36
22
|
protected abstract fetchSnapshot(): Promise<SerializedSnapshotType>;
|
|
37
23
|
protected abstract persistSnapshot(serializedSnapshot: SerializedSnapshotType): Promise<unknown>;
|
|
38
|
-
private listenEvents;
|
|
39
|
-
private handleEvent;
|
|
40
24
|
}
|
|
@@ -1,56 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import { AbstractEventService } from '../event-service';
|
|
2
|
+
export class AbstractSnapshotService extends AbstractEventService {
|
|
2
3
|
constructor(contract, eventConfig, initialBlockNumber) {
|
|
3
|
-
|
|
4
|
-
this.handleEvent = async (eventName, ...args) => {
|
|
5
|
-
const { args: eventArgsConfig } = this.eventConfig;
|
|
6
|
-
const { blockNumber } = args[args.length - 1];
|
|
7
|
-
const eventFields = args.slice(0, eventArgsConfig.length);
|
|
8
|
-
const serializedEvent = eventArgsConfig.reduce((result, fieldName, idx) => {
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
-
// @ts-ignore
|
|
11
|
-
// eslint-disable-next-line no-param-reassign
|
|
12
|
-
result[fieldName] = eventFields[idx];
|
|
13
|
-
return result;
|
|
14
|
-
}, {});
|
|
15
|
-
this.requireReady();
|
|
16
|
-
if (blockNumber) {
|
|
17
|
-
const event = this.mapEvent(serializedEvent);
|
|
18
|
-
const success = this.addEvent(event, blockNumber);
|
|
19
|
-
if (success) {
|
|
20
|
-
this._latestBlockNumber = blockNumber;
|
|
21
|
-
await this.saveSnapshot();
|
|
22
|
-
this.emitNewEvent(event);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
await this.retrieveEvents(this._latestBlockNumber + 1);
|
|
26
|
-
};
|
|
27
|
-
this.contract = contract;
|
|
28
|
-
this.eventConfig = eventConfig;
|
|
29
|
-
this._latestBlockNumber = initialBlockNumber;
|
|
30
|
-
}
|
|
31
|
-
get latestBlockNumber() {
|
|
32
|
-
return this._latestBlockNumber;
|
|
4
|
+
super(contract, eventConfig, initialBlockNumber);
|
|
33
5
|
}
|
|
34
6
|
set onSnapshotReady(value) {
|
|
35
7
|
this._onSnapshotReady = value;
|
|
36
8
|
}
|
|
37
|
-
set onNewEvent(value) {
|
|
38
|
-
this._onNewEvent = value;
|
|
39
|
-
}
|
|
40
9
|
async init() {
|
|
41
|
-
if (this.isReady) {
|
|
42
|
-
throw new Error('Already initialized');
|
|
43
|
-
}
|
|
44
10
|
await this.loadSnapshot();
|
|
45
|
-
|
|
46
|
-
await this.retrieveEvents(this._latestBlockNumber + 1);
|
|
11
|
+
await super.init();
|
|
47
12
|
this.emitSnapshotReady(this.getSnapshotPayload());
|
|
48
|
-
this.listenEvents();
|
|
49
|
-
}
|
|
50
|
-
requireReady() {
|
|
51
|
-
if (!this.isReady) {
|
|
52
|
-
throw new Error('Not ready');
|
|
53
|
-
}
|
|
54
13
|
}
|
|
55
14
|
emitSnapshotReady(snapshotPayload) {
|
|
56
15
|
this._onSnapshotReady?.({
|
|
@@ -58,40 +17,26 @@ export class AbstractSnapshotService {
|
|
|
58
17
|
payload: snapshotPayload,
|
|
59
18
|
});
|
|
60
19
|
}
|
|
61
|
-
emitNewEvent(event) {
|
|
62
|
-
this._onNewEvent?.(event);
|
|
63
|
-
}
|
|
64
20
|
async retrieveEvents(fromBlockNumber) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
events.forEach((event) => {
|
|
69
|
-
if (!event.args) {
|
|
70
|
-
throw new Error('Wrong event structure');
|
|
71
|
-
}
|
|
72
|
-
const { args } = event;
|
|
73
|
-
const success = this.addEvent(this.mapEvent(args), event.blockNumber);
|
|
74
|
-
if (!success) {
|
|
75
|
-
throw new Error('Failed to retrieve events');
|
|
76
|
-
}
|
|
77
|
-
this._latestBlockNumber = event.blockNumber;
|
|
78
|
-
});
|
|
79
|
-
await this.saveSnapshot();
|
|
21
|
+
const addedAmount = await super.retrieveEvents(fromBlockNumber);
|
|
22
|
+
if (addedAmount > 0) {
|
|
23
|
+
await this.saveSnapshot(this._latestBlockNumber);
|
|
80
24
|
}
|
|
25
|
+
return addedAmount;
|
|
81
26
|
}
|
|
82
27
|
async loadSnapshot() {
|
|
83
28
|
const snapshot = this.deserializeSnapshot(await this.fetchSnapshot());
|
|
84
29
|
await this.populateSnapshot(snapshot);
|
|
85
30
|
this._latestBlockNumber = snapshot.latestBlockNumber;
|
|
86
31
|
}
|
|
87
|
-
saveSnapshot() {
|
|
32
|
+
saveSnapshot(_blockNumber) {
|
|
88
33
|
return this.persistSnapshot(this.serializeSnapshot({
|
|
89
34
|
latestBlockNumber: this._latestBlockNumber,
|
|
90
35
|
payload: this.getSnapshotPayload(),
|
|
91
36
|
}));
|
|
92
37
|
}
|
|
93
|
-
|
|
94
|
-
|
|
38
|
+
afterEventsAccepted(_events, _blockNumber) {
|
|
39
|
+
return this.saveSnapshot(_blockNumber);
|
|
95
40
|
}
|
|
96
41
|
}
|
|
97
42
|
//# sourceMappingURL=AbstractSnapshotService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractSnapshotService.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AbstractSnapshotService.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/snapshot/AbstractSnapshotService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAe,MAAM,kBAAkB,CAAC;AASrE,MAAM,OAAgB,uBAKpB,SAAQ,oBAAoD;IAG5D,YAAsB,QAAyB,EAAE,WAAwB,EAAE,kBAA0B;QACnG,KAAK,CAAC,QAAQ,EAAE,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,eAAe,CAAC,KAAiD;QACnE,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;IAChC,CAAC;IAEQ,KAAK,CAAC,IAAI;QACjB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACpD,CAAC;IAEO,iBAAiB,CAAC,eAAoC;QAC5D,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;YAC1C,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;IACL,CAAC;IAEkB,KAAK,CAAC,cAAc,CAAC,eAAuB;QAC7D,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;QAChE,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAClD;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IACvD,CAAC;IAES,YAAY,CAAC,YAAoB;QACzC,OAAO,IAAI,CAAC,eAAe,CACzB,IAAI,CAAC,iBAAiB,CAAC;YACrB,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;YAC1C,OAAO,EAAE,IAAI,CAAC,kBAAkB,EAAE;SACnC,CAAC,CACH,CAAC;IACJ,CAAC;IAEkB,mBAAmB,CAAC,OAAoB,EAAE,YAAoB;QAC/E,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;CASF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export var ExternalActionId;
|
|
2
|
+
(function (ExternalActionId) {
|
|
3
|
+
// TODO: Not workable one
|
|
4
|
+
ExternalActionId["Aave"] = "Aave";
|
|
5
|
+
ExternalActionId["FutureTransact"] = "FutureTransact";
|
|
6
|
+
// TODO: Not workable one
|
|
7
|
+
ExternalActionId["Odos"] = "Odos";
|
|
8
|
+
ExternalActionId["Uniswap"] = "Uniswap";
|
|
9
|
+
})(ExternalActionId || (ExternalActionId = {}));
|
|
10
|
+
//# sourceMappingURL=external-action.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-action.types.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/types/external-action.types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAOX;AAPD,WAAY,gBAAgB;IAC1B,yBAAyB;IACzB,iCAAa,CAAA;IACb,qDAAiC,CAAA;IACjC,yBAAyB;IACzB,iCAAa,CAAA;IACb,uCAAmB,CAAA;AACrB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,QAO3B"}
|
package/src/types/index.d.ts
CHANGED
package/src/types/index.js
CHANGED
package/src/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC"}
|
|
@@ -12,4 +12,7 @@ export function bigintMax(...values) {
|
|
|
12
12
|
export function bigintMin(...values) {
|
|
13
13
|
return values.reduce((min, value) => (value < min ? value : min));
|
|
14
14
|
}
|
|
15
|
+
export function bigintAbs(n) {
|
|
16
|
+
return n === -0n || n < 0n ? -n : n;
|
|
17
|
+
}
|
|
15
18
|
//# sourceMappingURL=bigInt.utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bigInt.utils.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/utils/bigInt.utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB;IAC9B,6DAA6D;IAC7D,aAAa;IACb,6EAA6E;IAC7E,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM;QACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,MAAgB;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,MAAgB;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
1
|
+
{"version":3,"file":"bigInt.utils.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/utils/bigInt.utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB;IAC9B,6DAA6D;IAC7D,aAAa;IACb,6EAA6E;IAC7E,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,SAAS,MAAM;QACvC,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,MAAgB;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAG,MAAgB;IAC3C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,CAAS;IACjC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { CIRCOM_P } from '../constants';
|
|
3
|
+
export const getExternalActionIdHash = (externalActionId) => BigInt(ethers.utils.id(externalActionId)) % CIRCOM_P;
|
|
4
|
+
export const getExternalMetadataHash = (externalMetadataBuffer) => BigInt(ethers.utils.keccak256(externalMetadataBuffer)) % CIRCOM_P;
|
|
5
|
+
//# sourceMappingURL=external-action.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"external-action.utils.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/utils/external-action.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,gBAAkC,EAAE,EAAE,CAC5E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,GAAG,QAAQ,CAAC;AAEvD,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,sBAA8B,EAAE,EAAE,CACxE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC,GAAG,QAAQ,CAAC"}
|
package/src/utils/index.d.ts
CHANGED
package/src/utils/index.js
CHANGED
package/src/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const resolveSync: (promiseFns: (() => Promise<any>)[]) => Promise<void>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-sync.utils.js","sourceRoot":"","sources":["../../../../../../libs/shared/common/src/utils/resolve-sync.utils.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAkC,EAAiB,EAAE,CAC/E,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC"}
|