PHP WebShell

Текущая директория: /opt/BitGoJS/modules/abstract-utxo/dist/test/transaction/descriptor

Просмотр файла: validatePolicy.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const assert_1 = __importDefault(require("assert"));
const testutil_1 = require("@bitgo/utxo-core/testutil");
const descriptor_1 = require("../../../../utxo-core/src/testutil/descriptor");
const validatePolicy_1 = require("../../../src/descriptor/validatePolicy");
const descriptor_2 = require("../../../src/descriptor");
function testAssertDescriptorPolicy(ds, p, k, expectedError) {
    const f = () => (0, validatePolicy_1.assertDescriptorPolicy)(ds.map((d) => (0, descriptor_2.toNamedDescriptorNative)(d, 'derivable')), p, k);
    if (expectedError) {
        assert_1.default.throws(f);
    }
    else {
        assert_1.default.doesNotThrow(f);
    }
}
describe('assertDescriptorPolicy', function () {
    const keys = (0, testutil_1.getKeyTriple)();
    function getNamedDescriptorSigned(name) {
        return (0, descriptor_2.createNamedDescriptorWithSignature)(name, (0, descriptor_1.getDescriptor)(name), keys[0]);
    }
    function getNamedDescriptor(name) {
        return stripSignature(getNamedDescriptorSigned(name));
    }
    function stripSignature(d) {
        return { ...d, signatures: undefined };
    }
    it('has expected result', function () {
        testAssertDescriptorPolicy([getNamedDescriptor('Wsh2Of3')], (0, validatePolicy_1.getValidatorDescriptorTemplate)('Wsh2Of3'), keys, null);
        // prod does only allow Wsh2Of3-ish descriptors
        testAssertDescriptorPolicy([getNamedDescriptor('Wsh2Of3')], (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, null);
        testAssertDescriptorPolicy([getNamedDescriptor('Wsh2Of3CltvDrop')], (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, null);
        // does not allow mixed descriptors
        testAssertDescriptorPolicy([getNamedDescriptor('Wsh2Of3'), getNamedDescriptor('Wsh2Of3CltvDrop')], (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, new validatePolicy_1.DescriptorPolicyValidationError([
            (0, descriptor_2.toNamedDescriptorNative)(getNamedDescriptor('Wsh2Of3'), 'derivable'),
            (0, descriptor_2.toNamedDescriptorNative)(getNamedDescriptor('Wsh2Of3CltvDrop'), 'derivable'),
        ], (0, validatePolicy_1.getPolicyForEnv)('prod')));
        // prod only allows other descriptors if they are signed by the user key
        testAssertDescriptorPolicy([getNamedDescriptorSigned('Wsh2Of2')], (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, null);
        testAssertDescriptorPolicy([getNamedDescriptor('Wsh2Of2')], (0, validatePolicy_1.getPolicyForEnv)('prod'), keys, new validatePolicy_1.DescriptorPolicyValidationError([(0, descriptor_2.toNamedDescriptorNative)(getNamedDescriptor('Wsh2Of2'), 'derivable')], (0, validatePolicy_1.getPolicyForEnv)('prod')));
        // test is very permissive by default
        testAssertDescriptorPolicy([stripSignature(getNamedDescriptor('Wsh2Of2'))], (0, validatePolicy_1.getPolicyForEnv)('test'), keys, null);
    });
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGVQb2xpY3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90ZXN0L3RyYW5zYWN0aW9uL2Rlc2NyaXB0b3IvdmFsaWRhdGVQb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFJNUIsd0RBQXlEO0FBRXpELDhFQUFrRztBQUNsRywyRUFNZ0Q7QUFDaEQsd0RBQXVIO0FBRXZILFNBQVMsMEJBQTBCLENBQ2pDLEVBQTZCLEVBQzdCLENBQTZCLEVBQzdCLENBQXlCLEVBQ3pCLGFBQXFEO0lBRXJELE1BQU0sQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUNiLElBQUEsdUNBQXNCLEVBQ3BCLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsb0NBQXVCLEVBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLEVBQ3RELENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztJQUNKLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsZ0JBQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkIsQ0FBQztTQUFNLENBQUM7UUFDTixnQkFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0FBQ0gsQ0FBQztBQUVELFFBQVEsQ0FBQyx3QkFBd0IsRUFBRTtJQUNqQyxNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFZLEdBQUUsQ0FBQztJQUM1QixTQUFTLHdCQUF3QixDQUFDLElBQXdCO1FBQ3hELE9BQU8sSUFBQSwrQ0FBa0MsRUFBQyxJQUFJLEVBQUUsSUFBQSwwQkFBYSxFQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFDRCxTQUFTLGtCQUFrQixDQUFDLElBQXdCO1FBQ2xELE9BQU8sY0FBYyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELFNBQVMsY0FBYyxDQUFDLENBQWtCO1FBQ3hDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUM7SUFDekMsQ0FBQztJQUVELEVBQUUsQ0FBQyxxQkFBcUIsRUFBRTtRQUN4QiwwQkFBMEIsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsSUFBQSwrQ0FBOEIsRUFBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFbkgsK0NBQStDO1FBQy9DLDBCQUEwQixDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pHLDBCQUEwQixDQUFDLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLElBQUEsZ0NBQWUsRUFBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFekcsbUNBQW1DO1FBQ25DLDBCQUEwQixDQUN4QixDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFDdEUsSUFBQSxnQ0FBZSxFQUFDLE1BQU0sQ0FBQyxFQUN2QixJQUFJLEVBQ0osSUFBSSxnREFBK0IsQ0FDakM7WUFDRSxJQUFBLG9DQUF1QixFQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsQ0FBQztZQUNuRSxJQUFBLG9DQUF1QixFQUFDLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLEVBQUUsV0FBVyxDQUFDO1NBQzVFLEVBQ0QsSUFBQSxnQ0FBZSxFQUFDLE1BQU0sQ0FBQyxDQUN4QixDQUNGLENBQUM7UUFFRix3RUFBd0U7UUFDeEUsMEJBQTBCLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUEsZ0NBQWUsRUFBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdkcsMEJBQTBCLENBQ3hCLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDL0IsSUFBQSxnQ0FBZSxFQUFDLE1BQU0sQ0FBQyxFQUN2QixJQUFJLEVBQ0osSUFBSSxnREFBK0IsQ0FDakMsQ0FBQyxJQUFBLG9DQUF1QixFQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLEVBQ3JFLElBQUEsZ0NBQWUsRUFBQyxNQUFNLENBQUMsQ0FDeEIsQ0FDRixDQUFDO1FBRUYscUNBQXFDO1FBQ3JDLDBCQUEwQixDQUFDLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFBLGdDQUFlLEVBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ25ILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5cbmltcG9ydCB7IFRyaXBsZSB9IGZyb20gJ0BiaXRnby9zZGstY29yZSc7XG5pbXBvcnQgeyBCSVAzMkludGVyZmFjZSB9IGZyb20gJ0BiaXRnby91dHhvLWxpYic7XG5pbXBvcnQgeyBnZXRLZXlUcmlwbGUgfSBmcm9tICdAYml0Z28vdXR4by1jb3JlL3Rlc3R1dGlsJztcblxuaW1wb3J0IHsgRGVzY3JpcHRvclRlbXBsYXRlLCBnZXREZXNjcmlwdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXR4by1jb3JlL3NyYy90ZXN0dXRpbC9kZXNjcmlwdG9yJztcbmltcG9ydCB7XG4gIGFzc2VydERlc2NyaXB0b3JQb2xpY3ksXG4gIERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IsXG4gIERlc2NyaXB0b3JWYWxpZGF0aW9uUG9saWN5LFxuICBnZXRQb2xpY3lGb3JFbnYsXG4gIGdldFZhbGlkYXRvckRlc2NyaXB0b3JUZW1wbGF0ZSxcbn0gZnJvbSAnLi4vLi4vLi4vc3JjL2Rlc2NyaXB0b3IvdmFsaWRhdGVQb2xpY3knO1xuaW1wb3J0IHsgTmFtZWREZXNjcmlwdG9yLCBjcmVhdGVOYW1lZERlc2NyaXB0b3JXaXRoU2lnbmF0dXJlLCB0b05hbWVkRGVzY3JpcHRvck5hdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3NyYy9kZXNjcmlwdG9yJztcblxuZnVuY3Rpb24gdGVzdEFzc2VydERlc2NyaXB0b3JQb2xpY3koXG4gIGRzOiBOYW1lZERlc2NyaXB0b3I8c3RyaW5nPltdLFxuICBwOiBEZXNjcmlwdG9yVmFsaWRhdGlvblBvbGljeSxcbiAgazogVHJpcGxlPEJJUDMySW50ZXJmYWNlPixcbiAgZXhwZWN0ZWRFcnJvcjogRGVzY3JpcHRvclBvbGljeVZhbGlkYXRpb25FcnJvciB8IG51bGxcbikge1xuICBjb25zdCBmID0gKCkgPT5cbiAgICBhc3NlcnREZXNjcmlwdG9yUG9saWN5KFxuICAgICAgZHMubWFwKChkKSA9PiB0b05hbWVkRGVzY3JpcHRvck5hdGl2ZShkLCAnZGVyaXZhYmxlJykpLFxuICAgICAgcCxcbiAgICAgIGtcbiAgICApO1xuICBpZiAoZXhwZWN0ZWRFcnJvcikge1xuICAgIGFzc2VydC50aHJvd3MoZik7XG4gIH0gZWxzZSB7XG4gICAgYXNzZXJ0LmRvZXNOb3RUaHJvdyhmKTtcbiAgfVxufVxuXG5kZXNjcmliZSgnYXNzZXJ0RGVzY3JpcHRvclBvbGljeScsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3Qga2V5cyA9IGdldEtleVRyaXBsZSgpO1xuICBmdW5jdGlvbiBnZXROYW1lZERlc2NyaXB0b3JTaWduZWQobmFtZTogRGVzY3JpcHRvclRlbXBsYXRlKTogTmFtZWREZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gY3JlYXRlTmFtZWREZXNjcmlwdG9yV2l0aFNpZ25hdHVyZShuYW1lLCBnZXREZXNjcmlwdG9yKG5hbWUpLCBrZXlzWzBdKTtcbiAgfVxuICBmdW5jdGlvbiBnZXROYW1lZERlc2NyaXB0b3IobmFtZTogRGVzY3JpcHRvclRlbXBsYXRlKTogTmFtZWREZXNjcmlwdG9yIHtcbiAgICByZXR1cm4gc3RyaXBTaWduYXR1cmUoZ2V0TmFtZWREZXNjcmlwdG9yU2lnbmVkKG5hbWUpKTtcbiAgfVxuXG4gIGZ1bmN0aW9uIHN0cmlwU2lnbmF0dXJlKGQ6IE5hbWVkRGVzY3JpcHRvcik6IE5hbWVkRGVzY3JpcHRvciB7XG4gICAgcmV0dXJuIHsgLi4uZCwgc2lnbmF0dXJlczogdW5kZWZpbmVkIH07XG4gIH1cblxuICBpdCgnaGFzIGV4cGVjdGVkIHJlc3VsdCcsIGZ1bmN0aW9uICgpIHtcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShbZ2V0TmFtZWREZXNjcmlwdG9yKCdXc2gyT2YzJyldLCBnZXRWYWxpZGF0b3JEZXNjcmlwdG9yVGVtcGxhdGUoJ1dzaDJPZjMnKSwga2V5cywgbnVsbCk7XG5cbiAgICAvLyBwcm9kIGRvZXMgb25seSBhbGxvdyBXc2gyT2YzLWlzaCBkZXNjcmlwdG9yc1xuICAgIHRlc3RBc3NlcnREZXNjcmlwdG9yUG9saWN5KFtnZXROYW1lZERlc2NyaXB0b3IoJ1dzaDJPZjMnKV0sIGdldFBvbGljeUZvckVudigncHJvZCcpLCBrZXlzLCBudWxsKTtcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShbZ2V0TmFtZWREZXNjcmlwdG9yKCdXc2gyT2YzQ2x0dkRyb3AnKV0sIGdldFBvbGljeUZvckVudigncHJvZCcpLCBrZXlzLCBudWxsKTtcblxuICAgIC8vIGRvZXMgbm90IGFsbG93IG1peGVkIGRlc2NyaXB0b3JzXG4gICAgdGVzdEFzc2VydERlc2NyaXB0b3JQb2xpY3koXG4gICAgICBbZ2V0TmFtZWREZXNjcmlwdG9yKCdXc2gyT2YzJyksIGdldE5hbWVkRGVzY3JpcHRvcignV3NoMk9mM0NsdHZEcm9wJyldLFxuICAgICAgZ2V0UG9saWN5Rm9yRW52KCdwcm9kJyksXG4gICAgICBrZXlzLFxuICAgICAgbmV3IERlc2NyaXB0b3JQb2xpY3lWYWxpZGF0aW9uRXJyb3IoXG4gICAgICAgIFtcbiAgICAgICAgICB0b05hbWVkRGVzY3JpcHRvck5hdGl2ZShnZXROYW1lZERlc2NyaXB0b3IoJ1dzaDJPZjMnKSwgJ2Rlcml2YWJsZScpLFxuICAgICAgICAgIHRvTmFtZWREZXNjcmlwdG9yTmF0aXZlKGdldE5hbWVkRGVzY3JpcHRvcignV3NoMk9mM0NsdHZEcm9wJyksICdkZXJpdmFibGUnKSxcbiAgICAgICAgXSxcbiAgICAgICAgZ2V0UG9saWN5Rm9yRW52KCdwcm9kJylcbiAgICAgIClcbiAgICApO1xuXG4gICAgLy8gcHJvZCBvbmx5IGFsbG93cyBvdGhlciBkZXNjcmlwdG9ycyBpZiB0aGV5IGFyZSBzaWduZWQgYnkgdGhlIHVzZXIga2V5XG4gICAgdGVzdEFzc2VydERlc2NyaXB0b3JQb2xpY3koW2dldE5hbWVkRGVzY3JpcHRvclNpZ25lZCgnV3NoMk9mMicpXSwgZ2V0UG9saWN5Rm9yRW52KCdwcm9kJyksIGtleXMsIG51bGwpO1xuICAgIHRlc3RBc3NlcnREZXNjcmlwdG9yUG9saWN5KFxuICAgICAgW2dldE5hbWVkRGVzY3JpcHRvcignV3NoMk9mMicpXSxcbiAgICAgIGdldFBvbGljeUZvckVudigncHJvZCcpLFxuICAgICAga2V5cyxcbiAgICAgIG5ldyBEZXNjcmlwdG9yUG9saWN5VmFsaWRhdGlvbkVycm9yKFxuICAgICAgICBbdG9OYW1lZERlc2NyaXB0b3JOYXRpdmUoZ2V0TmFtZWREZXNjcmlwdG9yKCdXc2gyT2YyJyksICdkZXJpdmFibGUnKV0sXG4gICAgICAgIGdldFBvbGljeUZvckVudigncHJvZCcpXG4gICAgICApXG4gICAgKTtcblxuICAgIC8vIHRlc3QgaXMgdmVyeSBwZXJtaXNzaXZlIGJ5IGRlZmF1bHRcbiAgICB0ZXN0QXNzZXJ0RGVzY3JpcHRvclBvbGljeShbc3RyaXBTaWduYXR1cmUoZ2V0TmFtZWREZXNjcmlwdG9yKCdXc2gyT2YyJykpXSwgZ2V0UG9saWN5Rm9yRW52KCd0ZXN0JyksIGtleXMsIG51bGwpO1xuICB9KTtcbn0pO1xuIl19

Выполнить команду


Для локальной разработки. Не используйте в интернете!