1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const utils_1 = require("@neo-one/utils");
|
4 | /**
|
5 | * Client which controls a development network.
|
6 | */
|
7 | class DeveloperClient {
|
8 | constructor(developerProvider) {
|
9 | this.developerProvider = developerProvider;
|
10 | }
|
11 | /**
|
12 | * Trigger consensus to run immediately.
|
13 | */
|
14 | async runConsensusNow() {
|
15 | if (this.mutableRunConsensusNow === undefined) {
|
16 | this.mutableRunConsensusNow = new Promise((resolve, reject) => {
|
17 | utils_1.enqueuePostPromiseJob(() => {
|
18 | this.runConsensusNowInternal()
|
19 | .then(resolve)
|
20 | .catch(reject);
|
21 | });
|
22 | });
|
23 | }
|
24 | return this.mutableRunConsensusNow;
|
25 | }
|
26 | /**
|
27 | * Update settings for the private network.
|
28 | */
|
29 | async updateSettings(options) {
|
30 | await this.developerProvider.updateSettings(options);
|
31 | }
|
32 | /**
|
33 | * Get the current settings of the private network.
|
34 | */
|
35 | async getSettings() {
|
36 | return this.developerProvider.getSettings();
|
37 | }
|
38 | /**
|
39 | * Fast forward the local network by `seconds` into the future.
|
40 | */
|
41 | async fastForwardOffset(seconds) {
|
42 | await this.developerProvider.fastForwardOffset(seconds);
|
43 | await this.runConsensusNow();
|
44 | }
|
45 | /**
|
46 | * Fast forward to a particular unix timestamp in the future.
|
47 | */
|
48 | async fastForwardToTime(seconds) {
|
49 | await this.developerProvider.fastForwardToTime(seconds);
|
50 | await this.runConsensusNow();
|
51 | }
|
52 | /**
|
53 | * Reset the local network to it's initial state starting at the genesis block.
|
54 | */
|
55 | async reset() {
|
56 | await this.developerProvider.reset();
|
57 | }
|
58 | async runConsensusNowInternal() {
|
59 | await this.developerProvider.runConsensusNow();
|
60 | this.mutableRunConsensusNow = undefined;
|
61 | }
|
62 | }
|
63 | exports.DeveloperClient = DeveloperClient;
|
64 |
|
65 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRldmVsb3BlckNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUF1RDtBQUV2RDs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUkxQixZQUFtQixpQkFBb0M7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLElBQUksSUFBSSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtZQUM3QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQzVELDZCQUFxQixDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLHVCQUF1QixFQUFFO3lCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDO3lCQUNiLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUF3QztRQUNsRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWU7UUFDNUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWU7UUFDNUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUI7UUFDbkMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFsRUQsMENBa0VDIiwiZmlsZSI6Im5lby1vbmUtY2xpZW50LWNvcmUvc3JjL0RldmVsb3BlckNsaWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldmVsb3BlclByb3ZpZGVyLCBQcml2YXRlTmV0d29ya1NldHRpbmdzIH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvbW1vbic7XG5pbXBvcnQgeyBlbnF1ZXVlUG9zdFByb21pc2VKb2IgfSBmcm9tICdAbmVvLW9uZS91dGlscyc7XG5cbi8qKlxuICogQ2xpZW50IHdoaWNoIGNvbnRyb2xzIGEgZGV2ZWxvcG1lbnQgbmV0d29yay5cbiAqL1xuZXhwb3J0IGNsYXNzIERldmVsb3BlckNsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGV2ZWxvcGVyUHJvdmlkZXI6IERldmVsb3BlclByb3ZpZGVyO1xuICBwcml2YXRlIG11dGFibGVSdW5Db25zZW5zdXNOb3c6IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRldmVsb3BlclByb3ZpZGVyOiBEZXZlbG9wZXJQcm92aWRlcikge1xuICAgIHRoaXMuZGV2ZWxvcGVyUHJvdmlkZXIgPSBkZXZlbG9wZXJQcm92aWRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIGNvbnNlbnN1cyB0byBydW4gaW1tZWRpYXRlbHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcnVuQ29uc2Vuc3VzTm93KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm11dGFibGVSdW5Db25zZW5zdXNOb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tdXRhYmxlUnVuQ29uc2Vuc3VzTm93ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBlbnF1ZXVlUG9zdFByb21pc2VKb2IoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucnVuQ29uc2Vuc3VzTm93SW50ZXJuYWwoKVxuICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSlcbiAgICAgICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm11dGFibGVSdW5Db25zZW5zdXNOb3c7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNldHRpbmdzIGZvciB0aGUgcHJpdmF0ZSBuZXR3b3JrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVNldHRpbmdzKG9wdGlvbnM6IFBhcnRpYWw8UHJpdmF0ZU5ldHdvcmtTZXR0aW5ncz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRldmVsb3BlclByb3ZpZGVyLnVwZGF0ZVNldHRpbmdzKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgcHJpdmF0ZSBuZXR3b3JrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNldHRpbmdzKCk6IFByb21pc2U8UHJpdmF0ZU5ldHdvcmtTZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmRldmVsb3BlclByb3ZpZGVyLmdldFNldHRpbmdzKCk7XG4gIH1cblxuICAvKipcbiAgICogRmFzdCBmb3J3YXJkIHRoZSBsb2NhbCBuZXR3b3JrIGJ5IGBzZWNvbmRzYCBpbnRvIHRoZSBmdXR1cmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZmFzdEZvcndhcmRPZmZzZXQoc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZXZlbG9wZXJQcm92aWRlci5mYXN0Rm9yd2FyZE9mZnNldChzZWNvbmRzKTtcbiAgICBhd2FpdCB0aGlzLnJ1bkNvbnNlbnN1c05vdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhc3QgZm9yd2FyZCB0byBhIHBhcnRpY3VsYXIgdW5peCB0aW1lc3RhbXAgaW4gdGhlIGZ1dHVyZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmYXN0Rm9yd2FyZFRvVGltZShzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRldmVsb3BlclByb3ZpZGVyLmZhc3RGb3J3YXJkVG9UaW1lKHNlY29uZHMpO1xuICAgIGF3YWl0IHRoaXMucnVuQ29uc2Vuc3VzTm93KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGxvY2FsIG5ldHdvcmsgdG8gaXQncyBpbml0aWFsIHN0YXRlIHN0YXJ0aW5nIGF0IHRoZSBnZW5lc2lzIGJsb2NrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlc2V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGV2ZWxvcGVyUHJvdmlkZXIucmVzZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcnVuQ29uc2Vuc3VzTm93SW50ZXJuYWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZXZlbG9wZXJQcm92aWRlci5ydW5Db25zZW5zdXNOb3coKTtcbiAgICB0aGlzLm11dGFibGVSdW5Db25zZW5zdXNOb3cgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==
|