UNPKG

@civic/sol-did-client

Version:
101 lines 4.07 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDefaultRawDidSolDataAccount = exports.DidAccountSizeHelper = void 0; const types_1 = require("./lib/types"); const utils_1 = require("./lib/utils"); const bn_js_1 = __importDefault(require("bn.js")); class DidAccountSizeHelper { constructor(didAccount) { this.didAccount = didAccount; } static getServiceSize(service) { if (!service) { return 0; } return (4 + (0, utils_1.getBinarySize)(service.fragment) + // String: fragment binary size 4 + (0, utils_1.getBinarySize)(service.serviceType) + 4 + (0, utils_1.getBinarySize)(service.serviceEndpoint)); } static getVerificationMethodSize(verificationMethod) { if (!verificationMethod) { return 0; } return (4 + (0, utils_1.getBinarySize)(verificationMethod.fragment) + // String: fragment binary size 2 + // flags 1 + // method 4 + verificationMethod.keyData.length); // keyData Vector<u8> } static getVerificationMethodDefaultSize() { return (4 + 7 + // String: "default" 2 + // flags 1 + // method 4 + 32); // Vec<u8>[32] ed25519 pubkey } getDidAccountSize() { return (1 + // version 1 + // bump 8 + // nonce DidAccountSizeHelper.getVerificationMethodDefaultSize() + // initial_authority 4 + this.didAccount.verificationMethods.reduce((acc, cur) => acc + DidAccountSizeHelper.getVerificationMethodSize(cur), 0) + // verification_methods // + 4 + self.verification_methods.iter().fold(0, | accum, item| { accum + item.size() }) // verification_methods 4 + this.didAccount.services.reduce((acc, cur) => acc + DidAccountSizeHelper.getServiceSize(cur), 0) + // services // + 4 + self.services.iter().fold(0, | accum, item| { accum + item.size() }) // services 4 + this.didAccount.nativeControllers.length * 32 + // native_controllers // + 4 + self.native_controllers.len() * 32 // native_controllers 4 + this.didAccount.otherControllers.reduce((acc, cur) => acc + 4 + (0, utils_1.getBinarySize)(cur), 0)); // other_controllers //+ 4 + self.other_controllers.iter().fold(0, | accum, item| { accum + 4 + item.len() }) } getTotalNativeAccountSize() { return (8 + // anchor discriminator this.getDidAccountSize()); } static getTotalInitialNativeAccountSize() { return (8 + // anchor discriminator this.getInitialDidAccountSize()); } static getInitialDidAccountSize() { return (1 + // version 1 + // bump 8 + // nonce DidAccountSizeHelper.getVerificationMethodDefaultSize() + // initial_authority 4 + // verification_methods 4 + // services 4 + // native_controllers 4); // other_controllers } static fromAccount(didAccount) { return new DidAccountSizeHelper(didAccount); } } exports.DidAccountSizeHelper = DidAccountSizeHelper; const getDefaultRawDidSolDataAccount = (authority) => ({ version: 0, bump: 0, nonce: new bn_js_1.default(0), initialVerificationMethod: { fragment: 'default', flags: types_1.BitwiseVerificationMethodFlag.CapabilityInvocation, methodType: types_1.VerificationMethodType.Ed25519VerificationKey2018, keyData: authority.toBuffer(), }, verificationMethods: [], services: [], nativeControllers: [], otherControllers: [], }); exports.getDefaultRawDidSolDataAccount = getDefaultRawDidSolDataAccount; //# sourceMappingURL=DidAccountSizeHelper.js.map