UNPKG

6.73 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3const utils_1 = require("@neo-one/utils");
4/**
5 * Client which controls a development network.
6 */
7class 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}
63exports.DeveloperClient = DeveloperClient;
64
65//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRldmVsb3BlckNsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUNBLDBDQUF1RDtBQUV2RDs7R0FFRztBQUNILE1BQWEsZUFBZTtJQUkxQixZQUFtQixpQkFBb0M7UUFDckQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxlQUFlO1FBQzFCLElBQUksSUFBSSxDQUFDLHNCQUFzQixLQUFLLFNBQVMsRUFBRTtZQUM3QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQzVELDZCQUFxQixDQUFDLEdBQUcsRUFBRTtvQkFDekIsSUFBSSxDQUFDLHVCQUF1QixFQUFFO3lCQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDO3lCQUNiLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUM7SUFDckMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxPQUF3QztRQUNsRSxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLFdBQVc7UUFDdEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWU7UUFDNUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLGlCQUFpQixDQUFDLE9BQWU7UUFDNUMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsTUFBTSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVPLEtBQUssQ0FBQyx1QkFBdUI7UUFDbkMsTUFBTSxJQUFJLENBQUMsaUJBQWlCLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFNBQVMsQ0FBQztJQUMxQyxDQUFDO0NBQ0Y7QUFsRUQsMENBa0VDIiwiZmlsZSI6Im5lby1vbmUtY2xpZW50LWNvcmUvc3JjL0RldmVsb3BlckNsaWVudC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERldmVsb3BlclByb3ZpZGVyLCBQcml2YXRlTmV0d29ya1NldHRpbmdzIH0gZnJvbSAnQG5lby1vbmUvY2xpZW50LWNvbW1vbic7XG5pbXBvcnQgeyBlbnF1ZXVlUG9zdFByb21pc2VKb2IgfSBmcm9tICdAbmVvLW9uZS91dGlscyc7XG5cbi8qKlxuICogQ2xpZW50IHdoaWNoIGNvbnRyb2xzIGEgZGV2ZWxvcG1lbnQgbmV0d29yay5cbiAqL1xuZXhwb3J0IGNsYXNzIERldmVsb3BlckNsaWVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGV2ZWxvcGVyUHJvdmlkZXI6IERldmVsb3BlclByb3ZpZGVyO1xuICBwcml2YXRlIG11dGFibGVSdW5Db25zZW5zdXNOb3c6IFByb21pc2U8dm9pZD4gfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGRldmVsb3BlclByb3ZpZGVyOiBEZXZlbG9wZXJQcm92aWRlcikge1xuICAgIHRoaXMuZGV2ZWxvcGVyUHJvdmlkZXIgPSBkZXZlbG9wZXJQcm92aWRlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyIGNvbnNlbnN1cyB0byBydW4gaW1tZWRpYXRlbHkuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcnVuQ29uc2Vuc3VzTm93KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLm11dGFibGVSdW5Db25zZW5zdXNOb3cgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tdXRhYmxlUnVuQ29uc2Vuc3VzTm93ID0gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBlbnF1ZXVlUG9zdFByb21pc2VKb2IoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucnVuQ29uc2Vuc3VzTm93SW50ZXJuYWwoKVxuICAgICAgICAgICAgLnRoZW4ocmVzb2x2ZSlcbiAgICAgICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm11dGFibGVSdW5Db25zZW5zdXNOb3c7XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIHNldHRpbmdzIGZvciB0aGUgcHJpdmF0ZSBuZXR3b3JrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHVwZGF0ZVNldHRpbmdzKG9wdGlvbnM6IFBhcnRpYWw8UHJpdmF0ZU5ldHdvcmtTZXR0aW5ncz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRldmVsb3BlclByb3ZpZGVyLnVwZGF0ZVNldHRpbmdzKG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY3VycmVudCBzZXR0aW5ncyBvZiB0aGUgcHJpdmF0ZSBuZXR3b3JrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFNldHRpbmdzKCk6IFByb21pc2U8UHJpdmF0ZU5ldHdvcmtTZXR0aW5ncz4ge1xuICAgIHJldHVybiB0aGlzLmRldmVsb3BlclByb3ZpZGVyLmdldFNldHRpbmdzKCk7XG4gIH1cblxuICAvKipcbiAgICogRmFzdCBmb3J3YXJkIHRoZSBsb2NhbCBuZXR3b3JrIGJ5IGBzZWNvbmRzYCBpbnRvIHRoZSBmdXR1cmUuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZmFzdEZvcndhcmRPZmZzZXQoc2Vjb25kczogbnVtYmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZXZlbG9wZXJQcm92aWRlci5mYXN0Rm9yd2FyZE9mZnNldChzZWNvbmRzKTtcbiAgICBhd2FpdCB0aGlzLnJ1bkNvbnNlbnN1c05vdygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZhc3QgZm9yd2FyZCB0byBhIHBhcnRpY3VsYXIgdW5peCB0aW1lc3RhbXAgaW4gdGhlIGZ1dHVyZS5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBmYXN0Rm9yd2FyZFRvVGltZShzZWNvbmRzOiBudW1iZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmRldmVsb3BlclByb3ZpZGVyLmZhc3RGb3J3YXJkVG9UaW1lKHNlY29uZHMpO1xuICAgIGF3YWl0IHRoaXMucnVuQ29uc2Vuc3VzTm93KCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdGhlIGxvY2FsIG5ldHdvcmsgdG8gaXQncyBpbml0aWFsIHN0YXRlIHN0YXJ0aW5nIGF0IHRoZSBnZW5lc2lzIGJsb2NrLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlc2V0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuZGV2ZWxvcGVyUHJvdmlkZXIucmVzZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcnVuQ29uc2Vuc3VzTm93SW50ZXJuYWwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5kZXZlbG9wZXJQcm92aWRlci5ydW5Db25zZW5zdXNOb3coKTtcbiAgICB0aGlzLm11dGFibGVSdW5Db25zZW5zdXNOb3cgPSB1bmRlZmluZWQ7XG4gIH1cbn1cbiJdfQ==