UNPKG

@oraichain/default

Version:
62 lines (55 loc) 2.89 kB
import { IServiceProvider, IStorageLayer, StringifiedType, TKeyArgs } from "@oraichain/common-types"; import TKey from "@oraichain/core"; import { ServiceProviderBase } from "@oraichain/service-provider-base"; import { OraiServiceProvider } from "@oraichain/service-provider-orai"; import { SHARE_SERIALIZATION_MODULE_NAME, ShareSerializationModule } from "@oraichain/share-serialization"; import { SHARE_TRANSFER_MODULE_NAME, ShareTransferModule } from "@oraichain/share-transfer"; import { MockStorageLayer, OraiStorageLayer } from "@oraichain/storage-layer-orai"; class ThresholdKey extends TKey { constructor(args?: TKeyArgs) { const { modules = {}, serviceProvider, storageLayer, customAuthArgs, blsDkgPackage, serverTimeOffset } = args || {}; const defaultModules = { [SHARE_TRANSFER_MODULE_NAME]: new ShareTransferModule(), [SHARE_SERIALIZATION_MODULE_NAME]: new ShareSerializationModule(), }; let finalServiceProvider: IServiceProvider; let finalStorageLayer: IStorageLayer; if (!serviceProvider) { finalServiceProvider = new OraiServiceProvider({ customAuthArgs, blsDkgPackage }); } else { finalServiceProvider = serviceProvider; } if (!storageLayer) { finalStorageLayer = new OraiStorageLayer({ hostUrl: "https://metadata.social-login.orai.io", serverTimeOffset }); } else { finalStorageLayer = storageLayer; } super({ ...(args || {}), modules: { ...defaultModules, ...modules }, serviceProvider: finalServiceProvider, storageLayer: finalStorageLayer }); } static async fromJSON(value: StringifiedType, args?: TKeyArgs): Promise<ThresholdKey> { const { storageLayer: tempOldStorageLayer, serviceProvider: tempOldServiceProvider } = value; const { storageLayer, serviceProvider, blsDkgPackage, modules = {}, customAuthArgs, serverTimeOffset = 0 } = args || {}; const defaultModules = { [SHARE_TRANSFER_MODULE_NAME]: new ShareTransferModule(), [SHARE_SERIALIZATION_MODULE_NAME]: new ShareSerializationModule(), }; const finalServiceProvider: IServiceProvider = serviceProvider || OraiServiceProvider.fromJSON(tempOldServiceProvider) || ServiceProviderBase.fromJSON(tempOldServiceProvider) || new OraiServiceProvider({ customAuthArgs, blsDkgPackage }); tempOldStorageLayer.serviceProvider = finalServiceProvider; const finalStorageLayer: IStorageLayer = storageLayer || MockStorageLayer.fromJSON(tempOldStorageLayer) || OraiStorageLayer.fromJSON(tempOldStorageLayer) || new OraiStorageLayer({ hostUrl: "https://metadata.social-login.orai.io", serverTimeOffset }); return super.fromJSON(value, { ...(args || {}), modules: { ...defaultModules, ...modules }, serviceProvider: finalServiceProvider, storageLayer: finalStorageLayer, }); } } export default ThresholdKey;