1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const tslib_1 = require("tslib");
|
4 | const node_blockchain_1 = require("@neo-one/node-blockchain");
|
5 | const node_neo_settings_1 = require("@neo-one/node-neo-settings");
|
6 | const node_storage_levelup_1 = require("@neo-one/node-storage-levelup");
|
7 | const node_vm_1 = require("@neo-one/node-vm");
|
8 | const levelup_1 = tslib_1.__importDefault(require("levelup"));
|
9 | const memdown_1 = tslib_1.__importDefault(require("memdown"));
|
10 | const compile_1 = require("./compile");
|
11 | const utils_1 = require("./utils");
|
12 | exports.EXECUTE_OPTIONS_DEFAULT = {
|
13 | prelude: Buffer.alloc(0, 0),
|
14 | ignoreWarnings: false
|
15 | };
|
16 | exports.executeScript = async (monitor, context, sourceFile, { prelude = Buffer.alloc(0, 0), ignoreWarnings = false } = exports.EXECUTE_OPTIONS_DEFAULT) => {
|
17 | const blockchain = await node_blockchain_1.Blockchain.create({
|
18 | settings: node_neo_settings_1.test(),
|
19 | storage: node_storage_levelup_1.storage({
|
20 | context: {
|
21 | messageMagic: node_neo_settings_1.test().messageMagic
|
22 | },
|
23 | db: levelup_1.default(memdown_1.default())
|
24 | }),
|
25 | vm: node_vm_1.vm,
|
26 | monitor
|
27 | });
|
28 | const { code: compiledCode, sourceMap } = await compile_1.compile({
|
29 | context,
|
30 | sourceFile
|
31 | });
|
32 | utils_1.throwOnDiagnosticErrorOrWarning(context.diagnostics, ignoreWarnings);
|
33 | const receipt = await blockchain.invokeScript(Buffer.concat([prelude, compiledCode]), monitor);
|
34 | return {
|
35 | receipt: {
|
36 | result: receipt.result.serializeJSON(blockchain.serializeJSONContext),
|
37 | actions: receipt.actions.map(action => action.serializeJSON(blockchain.serializeJSONContext))
|
38 | },
|
39 | sourceMap
|
40 | };
|
41 | };
|
42 |
|
43 | //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4ZWN1dGVTY3JpcHQudHMiXSwibmFtZXMiOlsiRVhFQ1VURV9PUFRJT05TX0RFRkFVTFQiLCJwcmVsdWRlIiwiQnVmZmVyIiwiYWxsb2MiLCJpZ25vcmVXYXJuaW5ncyIsImV4ZWN1dGVTY3JpcHQiLCJtb25pdG9yIiwiY29udGV4dCIsInNvdXJjZUZpbGUiLCJibG9ja2NoYWluIiwiQmxvY2tjaGFpbiIsImNyZWF0ZSIsInNldHRpbmdzIiwidGVzdE5ldCIsInN0b3JhZ2UiLCJtZXNzYWdlTWFnaWMiLCJkYiIsIkxldmVsVXAiLCJNZW1Eb3duIiwidm0iLCJjb2RlIiwiY29tcGlsZWRDb2RlIiwic291cmNlTWFwIiwiY29tcGlsZSIsInRocm93T25EaWFnbm9zdGljRXJyb3JPcldhcm5pbmciLCJkaWFnbm9zdGljcyIsInJlY2VpcHQiLCJpbnZva2VTY3JpcHQiLCJjb25jYXQiLCJyZXN1bHQiLCJzZXJpYWxpemVKU09OIiwic2VyaWFsaXplSlNPTkNvbnRleHQiLCJhY3Rpb25zIiwibWFwIiwiYWN0aW9uIl0sIm1hcHBpbmdzIjoiOzs7QUFFQSw4REFBQTtBQUNBLGtFQUFBO0FBQ0Esd0VBQUE7QUFDQSw4Q0FBQTtBQUNBLDhEQUFBO0FBQ0EsOERBQUE7QUFHQSx1Q0FBQTtBQUVBLG1DQUFBO0FBT2FBLFFBQUFBLHVCQUF1QixHQUFHO0lBQ3JDQyxPQUFPLEVBQUVDLE1BQU0sQ0FBQ0MsS0FBUCxDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FENEI7SUFFckNDLGNBQWMsRUFBRSxLQUFBO0NBRlgsQ0FBQTtBQUtNQyxRQUFBQSxhQUFhLEdBQUcsS0FBQSxFQUMzQkMsT0FEMkIsRUFFM0JDLE9BRjJCLEVBRzNCQyxVQUgyQixFQUkzQixFQUFFUCxPQUFPLEdBQUdDLE1BQU0sQ0FBQ0MsS0FBUCxDQUFhLENBQWIsRUFBZ0IsQ0FBaEIsQ0FBWixFQUFnQ0MsY0FBYyxHQUFHLEtBQUEsS0FBMEJKLCtCQUpoRCxFQUFBLEVBQUE7SUFNM0IsTUFBTVMsVUFBVSxHQUFHLE1BQU1DLDRCQUFVLENBQUNDLE1BQVgsQ0FBa0I7UUFDekNDLFFBQVEsRUFBRUMsd0JBQU8sRUFEd0I7UUFFekNDLE9BQU8sRUFBRUEsOEJBQU8sQ0FBQztZQUNmUCxPQUFPLEVBQUU7Z0JBQUVRLFlBQVksRUFBRUYsd0JBQU8sRUFBQSxDQUFHRSxZQUFBQTthQURwQjtZQUVmQyxFQUFFLEVBQUVDLGlCQUFPLENBQUNDLGlCQUFPLEVBQVIsQ0FBQTtTQUZHLENBRnlCO1FBTXpDQyxFQU55QyxFQU16Q0EsWUFOeUM7UUFPekNiLE9BQUFBO0tBUHVCLENBQXpCLENBQUE7SUFTQSxNQUFNLEVBQUVjLElBQUksRUFBRUMsWUFBUixFQUFzQkMsU0FBQUEsRUFBdEIsR0FBb0MsTUFBTUMsaUJBQU8sQ0FBQztRQUFFaEIsT0FBRjtRQUFXQyxVQUFBQTtLQUFaLENBQXZELENBQUE7SUFFQWdCLHVDQUErQixDQUFDakIsT0FBTyxDQUFDa0IsV0FBVCxFQUFzQnJCLGNBQXRCLENBQS9CLENBQUE7SUFFQSxNQUFNc0IsT0FBTyxHQUFHLE1BQU1qQixVQUFVLENBQUNrQixZQUFYLENBQXdCekIsTUFBTSxDQUFDMEIsTUFBUCxDQUFjLENBQUMzQixPQUFELEVBQVVvQixZQUFWLENBQWQsQ0FBeEIsRUFBZ0VmLE9BQWhFLENBQXRCLENBQUE7SUFFQSxPQUFPO1FBQ0xvQixPQUFPLEVBQUU7WUFDUEcsTUFBTSxFQUFFSCxPQUFPLENBQUNHLE1BQVIsQ0FBZUMsYUFBZixDQUE2QnJCLFVBQVUsQ0FBQ3NCLG9CQUF4QyxDQUREO1lBRVBDLE9BQU8sRUFBRU4sT0FBTyxDQUFDTSxPQUFSLENBQWdCQyxHQUFoQixDQUFxQkMsTUFBRCxDQUFBLEVBQUEsQ0FBWUEsTUFBTSxDQUFDSixhQUFQLENBQXFCckIsVUFBVSxDQUFDc0Isb0JBQWhDLENBQWhDLENBQUE7U0FITjtRQUtMVCxTQUFBQTtLQUxGLENBQUE7QUFPRCxDQTVCTSxDQUFBIiwiZmlsZSI6Im5lby1vbmUtc21hcnQtY29udHJhY3QtY29tcGlsZXIvc3JjL2V4ZWN1dGVTY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDYWxsUmVjZWlwdEpTT04gfSBmcm9tICdAbmVvLW9uZS9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBNb25pdG9yIH0gZnJvbSAnQG5lby1vbmUvbW9uaXRvcic7XG5pbXBvcnQgeyBCbG9ja2NoYWluIH0gZnJvbSAnQG5lby1vbmUvbm9kZS1ibG9ja2NoYWluJztcbmltcG9ydCB7IHRlc3QgYXMgdGVzdE5ldCB9IGZyb20gJ0BuZW8tb25lL25vZGUtbmVvLXNldHRpbmdzJztcbmltcG9ydCB7IHN0b3JhZ2UgfSBmcm9tICdAbmVvLW9uZS9ub2RlLXN0b3JhZ2UtbGV2ZWx1cCc7XG5pbXBvcnQgeyB2bSB9IGZyb20gJ0BuZW8tb25lL25vZGUtdm0nO1xuaW1wb3J0IExldmVsVXAgZnJvbSAnbGV2ZWx1cCc7XG5pbXBvcnQgTWVtRG93biBmcm9tICdtZW1kb3duJztcbmltcG9ydCB7IFJhd1NvdXJjZU1hcCB9IGZyb20gJ3NvdXJjZS1tYXAnO1xuaW1wb3J0IHRzIGZyb20gJ3R5cGVzY3JpcHQnO1xuaW1wb3J0IHsgY29tcGlsZSB9IGZyb20gJy4vY29tcGlsZSc7XG5pbXBvcnQgeyBDb250ZXh0IH0gZnJvbSAnLi9Db250ZXh0JztcbmltcG9ydCB7IHRocm93T25EaWFnbm9zdGljRXJyb3JPcldhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBFeGVjdXRlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByZWx1ZGU/OiBCdWZmZXI7XG4gIHJlYWRvbmx5IGlnbm9yZVdhcm5pbmdzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IEVYRUNVVEVfT1BUSU9OU19ERUZBVUxUID0ge1xuICBwcmVsdWRlOiBCdWZmZXIuYWxsb2MoMCwgMCksXG4gIGlnbm9yZVdhcm5pbmdzOiBmYWxzZSxcbn07XG5cbmV4cG9ydCBjb25zdCBleGVjdXRlU2NyaXB0ID0gYXN5bmMgKFxuICBtb25pdG9yOiBNb25pdG9yLFxuICBjb250ZXh0OiBDb250ZXh0LFxuICBzb3VyY2VGaWxlOiB0cy5Tb3VyY2VGaWxlLFxuICB7IHByZWx1ZGUgPSBCdWZmZXIuYWxsb2MoMCwgMCksIGlnbm9yZVdhcm5pbmdzID0gZmFsc2UgfTogRXhlY3V0ZU9wdGlvbnMgPSBFWEVDVVRFX09QVElPTlNfREVGQVVMVCxcbik6IFByb21pc2U8eyByZWFkb25seSByZWNlaXB0OiBDYWxsUmVjZWlwdEpTT047IHJlYWRvbmx5IHNvdXJjZU1hcDogUmF3U291cmNlTWFwIH0+ID0+IHtcbiAgY29uc3QgYmxvY2tjaGFpbiA9IGF3YWl0IEJsb2NrY2hhaW4uY3JlYXRlKHtcbiAgICBzZXR0aW5nczogdGVzdE5ldCgpLFxuICAgIHN0b3JhZ2U6IHN0b3JhZ2Uoe1xuICAgICAgY29udGV4dDogeyBtZXNzYWdlTWFnaWM6IHRlc3ROZXQoKS5tZXNzYWdlTWFnaWMgfSxcbiAgICAgIGRiOiBMZXZlbFVwKE1lbURvd24oKSksXG4gICAgfSksXG4gICAgdm0sXG4gICAgbW9uaXRvcixcbiAgfSk7XG4gIGNvbnN0IHsgY29kZTogY29tcGlsZWRDb2RlLCBzb3VyY2VNYXAgfSA9IGF3YWl0IGNvbXBpbGUoeyBjb250ZXh0LCBzb3VyY2VGaWxlIH0pO1xuXG4gIHRocm93T25EaWFnbm9zdGljRXJyb3JPcldhcm5pbmcoY29udGV4dC5kaWFnbm9zdGljcywgaWdub3JlV2FybmluZ3MpO1xuXG4gIGNvbnN0IHJlY2VpcHQgPSBhd2FpdCBibG9ja2NoYWluLmludm9rZVNjcmlwdChCdWZmZXIuY29uY2F0KFtwcmVsdWRlLCBjb21waWxlZENvZGVdKSwgbW9uaXRvcik7XG5cbiAgcmV0dXJuIHtcbiAgICByZWNlaXB0OiB7XG4gICAgICByZXN1bHQ6IHJlY2VpcHQucmVzdWx0LnNlcmlhbGl6ZUpTT04oYmxvY2tjaGFpbi5zZXJpYWxpemVKU09OQ29udGV4dCksXG4gICAgICBhY3Rpb25zOiByZWNlaXB0LmFjdGlvbnMubWFwKChhY3Rpb24pID0+IGFjdGlvbi5zZXJpYWxpemVKU09OKGJsb2NrY2hhaW4uc2VyaWFsaXplSlNPTkNvbnRleHQpKSxcbiAgICB9LFxuICAgIHNvdXJjZU1hcCxcbiAgfTtcbn07XG4iXX0=
|