UNPKG

@tkey-mpc/default

Version:

TKey default library

80 lines (76 loc) 3.1 kB
'use strict'; var _objectSpread = require('@babel/runtime/helpers/objectSpread2'); var core = require('@tkey-mpc/core'); var serviceProviderBase = require('@tkey-mpc/service-provider-base'); var serviceProviderTorus = require('@tkey-mpc/service-provider-torus'); var shareSerialization = require('@tkey-mpc/share-serialization'); var shareTransfer = require('@tkey-mpc/share-transfer'); var storageLayerTorus = require('@tkey-mpc/storage-layer-torus'); class ThresholdKey extends core.ThresholdKey { constructor(args) { const { modules = {}, serviceProvider, storageLayer, customAuthArgs, serverTimeOffset } = args || {}; const defaultModules = { [shareTransfer.SHARE_TRANSFER_MODULE_NAME]: new shareTransfer.ShareTransferModule(), [shareSerialization.SHARE_SERIALIZATION_MODULE_NAME]: new shareSerialization.ShareSerializationModule() }; let finalServiceProvider; let finalStorageLayer; if (!serviceProvider) { finalServiceProvider = new serviceProviderTorus.TorusServiceProvider({ customAuthArgs }); } else { finalServiceProvider = serviceProvider; } if (!storageLayer) { finalStorageLayer = new storageLayerTorus.TorusStorageLayer({ hostUrl: "https://metadata.tor.us", serverTimeOffset }); } else { finalStorageLayer = storageLayer; } super(_objectSpread(_objectSpread({}, args || {}), {}, { modules: _objectSpread(_objectSpread({}, defaultModules), modules), serviceProvider: finalServiceProvider, storageLayer: finalStorageLayer })); } static async fromJSON(value, args) { const { storageLayer: tempOldStorageLayer, serviceProvider: tempOldServiceProvider } = value; const { storageLayer, serviceProvider, modules = {}, customAuthArgs, serverTimeOffset = 0 } = args || {}; const defaultModules = { [shareTransfer.SHARE_TRANSFER_MODULE_NAME]: new shareTransfer.ShareTransferModule(), [shareSerialization.SHARE_SERIALIZATION_MODULE_NAME]: new shareSerialization.ShareSerializationModule() }; const finalServiceProvider = serviceProvider || serviceProviderTorus.TorusServiceProvider.fromJSON(tempOldServiceProvider) || serviceProviderBase.ServiceProviderBase.fromJSON(tempOldServiceProvider) || new serviceProviderTorus.TorusServiceProvider({ customAuthArgs }); tempOldStorageLayer.serviceProvider = finalServiceProvider; const finalStorageLayer = storageLayer || storageLayerTorus.MockStorageLayer.fromJSON(tempOldStorageLayer) || storageLayerTorus.TorusStorageLayer.fromJSON(tempOldStorageLayer) || new storageLayerTorus.TorusStorageLayer({ hostUrl: "https://metadata.tor.us", serverTimeOffset }); return super.fromJSON(value, _objectSpread(_objectSpread({}, args || {}), {}, { modules: _objectSpread(_objectSpread({}, defaultModules), modules), serviceProvider: finalServiceProvider, storageLayer: finalStorageLayer })); } } exports.ThresholdKey = ThresholdKey;