@oak-network/sdk
Advanced tools
Comparing version 0.1.4 to 0.2.0
@@ -1,28 +0,11 @@ | ||
import BN from 'bn.js'; | ||
import type { SubmittableExtrinsic } from '@polkadot/api/types'; | ||
import type { HexString } from '@polkadot/util/types'; | ||
import type { KeyringPair } from '@polkadot/keyring/types'; | ||
import { ChainAdapter, OakAdapter, TaskSchedulerChainAdapter, SendExtrinsicResult } from '@oak-network/adapter'; | ||
import { Weight } from '@oak-network/sdk-types'; | ||
interface ScheduleXcmpTaskWithPayThroughSoverignAccountFlowParams { | ||
import BN from "bn.js"; | ||
import type { SubmittableExtrinsic } from "@polkadot/api/types"; | ||
import type { KeyringPair } from "@polkadot/keyring/types"; | ||
import { ChainAdapter, OakAdapter, TaskSchedulerChainAdapter, SendExtrinsicResult, AutomationPriceTriggerParams } from "@oak-network/adapter"; | ||
import { Weight } from "@oak-network/config"; | ||
interface ScheduleXcmpTaskParams { | ||
oakAdapter: OakAdapter; | ||
destinationChainAdapter: ChainAdapter; | ||
taskPayloadExtrinsic: SubmittableExtrinsic<'promise'>; | ||
schedule: any; | ||
keyringPair: KeyringPair; | ||
xcmOptions?: { | ||
instructionCount?: number; | ||
overallWeight?: Weight; | ||
executionFeeAmount?: BN; | ||
}; | ||
} | ||
interface ScheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlowParams { | ||
oakAdapter: OakAdapter; | ||
destinationChainAdapter: TaskSchedulerChainAdapter; | ||
taskPayloadExtrinsic: SubmittableExtrinsic<'promise'>; | ||
taskPayloadExtrinsic: SubmittableExtrinsic<"promise">; | ||
scheduleFeeLocation: any; | ||
executionFeeLocation: any; | ||
schedule: any; | ||
scheduleAs: HexString; | ||
keyringPair: KeyringPair; | ||
xcmOptions?: { | ||
@@ -33,29 +16,18 @@ instructionCount?: number; | ||
}; | ||
keyringPair: KeyringPair; | ||
} | ||
interface AutomationPriceTriggerParams { | ||
chain: string; | ||
exchange: string; | ||
asset1: string; | ||
asset2: string; | ||
submittedAt: number; | ||
triggerFunction: 'lt' | 'gt'; | ||
triggerParam: number[]; | ||
interface ScheduleXcmpTaskWithPayThroughSoverignAccountFlowParams extends ScheduleXcmpTaskParams { | ||
destinationChainAdapter: ChainAdapter; | ||
} | ||
interface ScheduleXcmpPriceTaskWithPayThroughRemoteDerivativeAccountFlowParams { | ||
oakAdapter: OakAdapter; | ||
interface ScheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlowParams extends ScheduleXcmpTaskParams { | ||
destinationChainAdapter: TaskSchedulerChainAdapter; | ||
taskPayloadExtrinsic: SubmittableExtrinsic<'promise'>; | ||
scheduleFeeLocation: any; | ||
executionFeeLocation: any; | ||
automationPriceTriggerParams: AutomationPriceTriggerParams; | ||
scheduleAs: HexString; | ||
keyringPair: KeyringPair; | ||
} | ||
export declare function Sdk(): { | ||
/** | ||
* Schedule XCMP task with PayThroughSoverignAccount instruction sequances | ||
* Schedule XCMP price task with PayThroughRemoteDerivativeAccount instruction sequances | ||
* @param params Operation params | ||
* @returns | ||
*/ | ||
scheduleXcmpTaskWithPayThroughSoverignAccountFlow: (params: ScheduleXcmpTaskWithPayThroughSoverignAccountFlowParams) => Promise<SendExtrinsicResult>; | ||
scheduleXcmpPriceTaskWithPayThroughRemoteDerivativeAccountFlow: (params: ScheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlowParams, automationPriceTriggerParams: AutomationPriceTriggerParams) => Promise<SendExtrinsicResult>; | ||
scheduleXcmpPriceTaskWithPayThroughSoverignAccountFlow: (params: ScheduleXcmpTaskWithPayThroughSoverignAccountFlowParams, automationPriceTriggerParams: AutomationPriceTriggerParams) => Promise<SendExtrinsicResult>; | ||
/** | ||
@@ -66,10 +38,10 @@ * Schedule XCMP time task with PayThroughRemoteDerivativeAccount instruction sequances | ||
*/ | ||
scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow: (params: ScheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlowParams) => Promise<SendExtrinsicResult>; | ||
scheduleXcmpTimeTaskWithPayThroughRemoteDerivativeAccountFlow: (scheduleXcmpTaskParams: ScheduleXcmpTaskParams, destinationChainAdapter: TaskSchedulerChainAdapter, schedule: any) => Promise<SendExtrinsicResult>; | ||
/** | ||
* Schedule XCMP price task with PayThroughRemoteDerivativeAccount instruction sequances | ||
* Schedule XCMP task with PayThroughSoverignAccount instruction sequances | ||
* @param params Operation params | ||
* @returns | ||
*/ | ||
scheduleXcmpPriceTaskWithPayThroughRemoteDerivativeAccountFlow: (params: ScheduleXcmpPriceTaskWithPayThroughRemoteDerivativeAccountFlowParams) => Promise<SendExtrinsicResult>; | ||
scheduleXcmpTimeTaskWithPayThroughSoverignAccountFlow: (scheduleXcmpTaskParams: ScheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlowParams, schedule: any) => Promise<SendExtrinsicResult>; | ||
}; | ||
export {}; |
129
index.js
@@ -15,17 +15,14 @@ "use strict"; | ||
*/ | ||
const scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow = async (params) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, createTaskFunc, executionFeeLocation, keyringPair, xcmOptions, } = params; | ||
const { defaultAsset } = oakAdapter.getChainData(); | ||
const scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow = async (params, destinationChainAdapter, createTaskFunc) => { | ||
const { oakAdapter, taskPayloadExtrinsic, executionFeeLocation, keyringPair, xcmOptions } = params; | ||
const [defaultAsset] = oakAdapter.getChainConfig().assets; | ||
if (lodash_1.default.isUndefined(defaultAsset)) { | ||
throw new Error("chainData.defaultAsset not set"); | ||
throw new Error("chainConfig.defaultAsset not set"); | ||
} | ||
const { paraId, xcmInstructionNetworkType, xcm } = destinationChainAdapter.getChainData(); | ||
const { paraId, xcm } = destinationChainAdapter.getChainConfig(); | ||
if (lodash_1.default.isUndefined(paraId)) { | ||
throw new Error("chainData.paraId not set"); | ||
throw new Error("chainConfig.paraId not set"); | ||
} | ||
if (lodash_1.default.isUndefined(xcmInstructionNetworkType)) { | ||
throw new Error("chainData.xcmInstructionNetworkType not set"); | ||
} | ||
if (lodash_1.default.isUndefined(xcm)) { | ||
throw new Error("chainData.xcm not set"); | ||
throw new Error("chainConfig.xcm not set"); | ||
} | ||
@@ -35,17 +32,20 @@ // Caluculate weight and fee for task | ||
const encodedCall = taskPayloadExtrinsic.method.toHex(); | ||
const oakTransactXcmInstructionCount = xcmOptions?.instructionCount || oakAdapter.getTransactXcmInstructionCount(); | ||
const oakTransactXcmInstructionCount = xcmOptions?.instructionCount || oakAdapter.getTransactXcmInstructionCount(adapter_1.OakAdapterTransactType.PayThroughRemoteDerivativeAccount); | ||
const taskPayloadEncodedCallWeight = await destinationChainAdapter.getExtrinsicWeight(taskPayloadExtrinsic, keyringPair); | ||
const taskPayloadOverallWeight = xcmOptions?.overallWeight || await destinationChainAdapter.calculateXcmOverallWeight(taskPayloadEncodedCallWeight, oakTransactXcmInstructionCount); | ||
const executionFeeAmout = xcmOptions?.executionFeeAmount || await destinationChainAdapter.weightToFee(taskPayloadOverallWeight, executionFeeLocation); | ||
const executionFee = { assetLocation: { V3: executionFeeLocation }, amount: executionFeeAmout }; | ||
const taskPayloadOverallWeight = xcmOptions?.overallWeight || | ||
(await destinationChainAdapter.calculateXcmOverallWeight(taskPayloadEncodedCallWeight, oakTransactXcmInstructionCount)); | ||
const executionFeeAmout = xcmOptions?.executionFeeAmount || (await destinationChainAdapter.weightToFee(taskPayloadOverallWeight, executionFeeLocation)); | ||
const executionFee = { | ||
amount: executionFeeAmout, | ||
assetLocation: { V3: executionFeeLocation }, | ||
}; | ||
// Calculate derive account on Turing/OAK | ||
const accountOptions = xcmInstructionNetworkType === adapter_1.XcmInstructionNetworkType.Concrete ? { locationType: 'XcmV3MultiLocation', network: xcm.network } : undefined; | ||
const deriveAccountId = oakAdapter.getDerivativeAccount((0, util_1.u8aToHex)(keyringPair.addressRaw), paraId, accountOptions); | ||
const deriveAccountId = oakAdapter.getDerivativeAccount((0, util_1.u8aToHex)(keyringPair.addressRaw), paraId, xcm.instructionNetworkType); | ||
// Create task extrinsic | ||
const taskExtrinsic = createTaskFunc({ | ||
oakApi: oakAdapter.getApi(), | ||
destination, | ||
executionFee, | ||
encodedCall, | ||
encodedCallWeight: taskPayloadEncodedCallWeight, | ||
executionFee, | ||
oakApi: oakAdapter.getApi(), | ||
overallWeight: taskPayloadOverallWeight, | ||
@@ -66,11 +66,28 @@ }); | ||
/** | ||
* Schedule XCMP task with PayThroughSoverignAccount instruction sequances | ||
* Schedule XCMP price task with PayThroughRemoteDerivativeAccount instruction sequances | ||
* @param params Operation params | ||
* @returns | ||
*/ | ||
scheduleXcmpTaskWithPayThroughSoverignAccountFlow: async (params) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, schedule, keyringPair, xcmOptions } = params; | ||
const { defaultAsset } = oakAdapter.getChainData(); | ||
scheduleXcmpPriceTaskWithPayThroughRemoteDerivativeAccountFlow: async (params, automationPriceTriggerParams) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, scheduleFeeLocation, executionFeeLocation, keyringPair, xcmOptions } = params; | ||
const createTaskFunc = (funcParams) => { | ||
const { oakApi, destination, executionFee, encodedCall, encodedCallWeight, overallWeight } = funcParams; | ||
const taskExtrinsic = oakApi.tx.automationPrice.scheduleXcmpTaskThroughProxy(automationPriceTriggerParams.chain, automationPriceTriggerParams.exchange, automationPriceTriggerParams.asset1, automationPriceTriggerParams.asset2, automationPriceTriggerParams.submittedAt, automationPriceTriggerParams.triggerFunction, automationPriceTriggerParams.triggerParam, destination, { V3: scheduleFeeLocation }, executionFee, encodedCall, encodedCallWeight, overallWeight, (0, util_1.u8aToHex)(keyringPair.addressRaw)); | ||
return taskExtrinsic; | ||
}; | ||
const sendExtrinsicResult = scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow({ | ||
executionFeeLocation, | ||
keyringPair, | ||
oakAdapter, | ||
scheduleFeeLocation, | ||
taskPayloadExtrinsic, | ||
xcmOptions, | ||
}, destinationChainAdapter, createTaskFunc); | ||
return sendExtrinsicResult; | ||
}, | ||
scheduleXcmpPriceTaskWithPayThroughSoverignAccountFlow: async (params, automationPriceTriggerParams) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, scheduleFeeLocation, executionFeeLocation, keyringPair, xcmOptions } = params; | ||
const [defaultAsset] = oakAdapter.getChainConfig().assets; | ||
if (lodash_1.default.isUndefined(defaultAsset)) { | ||
throw new Error("chainData.defaultAsset not set"); | ||
throw new Error("chainConfig.defaultAsset not set"); | ||
} | ||
@@ -80,10 +97,13 @@ // Caluculate weight and fee for task | ||
const encodedCall = taskPayloadExtrinsic.method.toHex(); | ||
const oakTransactXcmInstructionCount = xcmOptions?.instructionCount || oakAdapter.getTransactXcmInstructionCount(); | ||
const oakTransactXcmInstructionCount = xcmOptions?.instructionCount || oakAdapter.getTransactXcmInstructionCount(adapter_1.OakAdapterTransactType.PayThroughSoverignAccount); | ||
const taskPayloadEncodedCallWeight = await destinationChainAdapter.getExtrinsicWeight(taskPayloadExtrinsic, keyringPair); | ||
const taskPayloadOverallWeight = xcmOptions?.overallWeight || await destinationChainAdapter.calculateXcmOverallWeight(taskPayloadEncodedCallWeight, oakTransactXcmInstructionCount); | ||
const scheduleFee = { V3: defaultAsset.location }; | ||
const executionFeeAmout = xcmOptions?.executionFeeAmount || await destinationChainAdapter.weightToFee(taskPayloadOverallWeight, defaultAsset.location); | ||
const executionFee = { assetLocation: { V3: defaultAsset.location }, amount: executionFeeAmout }; | ||
const taskPayloadOverallWeight = xcmOptions?.overallWeight || | ||
(await destinationChainAdapter.calculateXcmOverallWeight(taskPayloadEncodedCallWeight, oakTransactXcmInstructionCount)); | ||
const executionFeeAmout = xcmOptions?.executionFeeAmount || (await destinationChainAdapter.weightToFee(taskPayloadOverallWeight, executionFeeLocation)); | ||
const executionFee = { | ||
amount: executionFeeAmout, | ||
assetLocation: { V3: executionFeeLocation }, | ||
}; | ||
// Schedule XCMP task | ||
const sendExtrinsicResult = oakAdapter.scheduleXcmpTask(destination, schedule, scheduleFee, executionFee, encodedCall, taskPayloadEncodedCallWeight, taskPayloadOverallWeight, keyringPair); | ||
const sendExtrinsicResult = oakAdapter.scheduleXcmpPriceTask(automationPriceTriggerParams, destination, { V3: scheduleFeeLocation }, executionFee, encodedCall, taskPayloadEncodedCallWeight, taskPayloadOverallWeight, keyringPair); | ||
return sendExtrinsicResult; | ||
@@ -96,30 +116,45 @@ }, | ||
*/ | ||
scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow: async (params) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, scheduleFeeLocation, executionFeeLocation, schedule, scheduleAs, keyringPair, } = params; | ||
const createTaskFunc = (params) => { | ||
const { oakApi, destination, executionFee, encodedCall, encodedCallWeight, overallWeight } = params; | ||
console.log('scheduleFeeLocation: ', scheduleFeeLocation); | ||
const taskExtrinsic = oakApi.tx.automationTime.scheduleXcmpTaskThroughProxy(schedule, destination, { V3: scheduleFeeLocation }, executionFee, encodedCall, encodedCallWeight, overallWeight, scheduleAs); | ||
scheduleXcmpTimeTaskWithPayThroughRemoteDerivativeAccountFlow: async (scheduleXcmpTaskParams, destinationChainAdapter, schedule) => { | ||
const { oakAdapter, taskPayloadExtrinsic, scheduleFeeLocation, executionFeeLocation, keyringPair, xcmOptions } = scheduleXcmpTaskParams; | ||
const createTaskFunc = (funcParams) => { | ||
const { oakApi, destination, executionFee, encodedCall, encodedCallWeight, overallWeight } = funcParams; | ||
console.log("scheduleFeeLocation: ", scheduleFeeLocation); | ||
const taskExtrinsic = oakApi.tx.automationTime.scheduleXcmpTaskThroughProxy(schedule, destination, { V3: scheduleFeeLocation }, executionFee, encodedCall, encodedCallWeight, overallWeight, (0, util_1.u8aToHex)(keyringPair.addressRaw)); | ||
return taskExtrinsic; | ||
}; | ||
const sendExtrinsicResult = scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow({ | ||
oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, createTaskFunc, scheduleFeeLocation, executionFeeLocation, keyringPair, | ||
}); | ||
executionFeeLocation, | ||
keyringPair, | ||
oakAdapter, | ||
scheduleFeeLocation, | ||
taskPayloadExtrinsic, | ||
xcmOptions, | ||
}, destinationChainAdapter, createTaskFunc); | ||
return sendExtrinsicResult; | ||
}, | ||
/** | ||
* Schedule XCMP price task with PayThroughRemoteDerivativeAccount instruction sequances | ||
* Schedule XCMP task with PayThroughSoverignAccount instruction sequances | ||
* @param params Operation params | ||
* @returns | ||
*/ | ||
scheduleXcmpPriceTaskWithPayThroughRemoteDerivativeAccountFlow: async (params) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, scheduleFeeLocation, executionFeeLocation, automationPriceTriggerParams, scheduleAs, keyringPair, } = params; | ||
const createTaskFunc = (params) => { | ||
const { oakApi, destination, executionFee, encodedCall, encodedCallWeight, overallWeight } = params; | ||
const taskExtrinsic = oakApi.tx.automationPrice.scheduleXcmpTaskThroughProxy(automationPriceTriggerParams.chain, automationPriceTriggerParams.exchange, automationPriceTriggerParams.asset1, automationPriceTriggerParams.asset2, automationPriceTriggerParams.submittedAt, automationPriceTriggerParams.triggerFunction, automationPriceTriggerParams.triggerParam, destination, { V3: scheduleFeeLocation }, executionFee, encodedCall, encodedCallWeight, overallWeight, scheduleAs); | ||
return taskExtrinsic; | ||
scheduleXcmpTimeTaskWithPayThroughSoverignAccountFlow: async (scheduleXcmpTaskParams, schedule) => { | ||
const { oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, scheduleFeeLocation, executionFeeLocation, keyringPair, xcmOptions } = scheduleXcmpTaskParams; | ||
const [defaultAsset] = oakAdapter.getChainConfig().assets; | ||
if (lodash_1.default.isUndefined(defaultAsset)) { | ||
throw new Error("chainData.defaultAsset not set"); | ||
} | ||
// Caluculate weight and fee for task | ||
const destination = { V3: destinationChainAdapter.getLocation() }; | ||
const encodedCall = taskPayloadExtrinsic.method.toHex(); | ||
const oakTransactXcmInstructionCount = xcmOptions?.instructionCount || oakAdapter.getTransactXcmInstructionCount(adapter_1.OakAdapterTransactType.PayThroughSoverignAccount); | ||
const taskPayloadEncodedCallWeight = await destinationChainAdapter.getExtrinsicWeight(taskPayloadExtrinsic, keyringPair); | ||
const taskPayloadOverallWeight = xcmOptions?.overallWeight || | ||
(await destinationChainAdapter.calculateXcmOverallWeight(taskPayloadEncodedCallWeight, oakTransactXcmInstructionCount)); | ||
const executionFeeAmout = xcmOptions?.executionFeeAmount || (await destinationChainAdapter.weightToFee(taskPayloadOverallWeight, executionFeeLocation)); | ||
const executionFee = { | ||
amount: executionFeeAmout, | ||
assetLocation: { V3: executionFeeLocation }, | ||
}; | ||
const sendExtrinsicResult = scheduleXcmpTaskWithPayThroughRemoteDerivativeAccountFlow({ | ||
oakAdapter, destinationChainAdapter, taskPayloadExtrinsic, createTaskFunc, scheduleFeeLocation, executionFeeLocation, keyringPair, | ||
}); | ||
// Schedule XCMP task | ||
const sendExtrinsicResult = oakAdapter.scheduleXcmpTask(destination, schedule, { V3: scheduleFeeLocation }, executionFee, encodedCall, taskPayloadEncodedCallWeight, taskPayloadOverallWeight, keyringPair); | ||
return sendExtrinsicResult; | ||
@@ -126,0 +161,0 @@ }, |
{ | ||
"name": "@oak-network/sdk", | ||
"version": "0.1.4", | ||
"version": "0.2.0", | ||
"license": "Apache-2.0", | ||
"main": "./index.js", | ||
"scripts": {}, | ||
"dependencies": { | ||
"@oak-network/adapter": "^0.2.0", | ||
"@oak-network/config": "^1.0.1", | ||
"@polkadot/util": "^12.6.1", | ||
"bn.js": "^5.2.1", | ||
"lodash": "^4.17.21" | ||
}, | ||
"devDependencies": { | ||
"typescript": "^5.3.2" | ||
}, | ||
"types": "./index.d.ts" | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
19779
207
5
1
+ Added@oak-network/adapter@^0.2.0
+ Added@oak-network/config@^1.0.1
+ Added@polkadot/util@^12.6.1
+ Addedbn.js@^5.2.1
+ Addedlodash@^4.17.21
+ Added@adraffy/ens-normalize@1.10.1(transitive)
+ Added@noble/curves@1.2.01.4.21.6.0(transitive)
+ Added@noble/hashes@1.3.21.4.01.5.0(transitive)
+ Added@oak-network/adapter@0.2.9(transitive)
+ Added@oak-network/config@1.0.10(transitive)
+ Added@polkadot-api/client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot-api/json-rpc-provider@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot-api/json-rpc-provider-proxy@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot-api/metadata-builders@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot-api/substrate-bindings@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot-api/substrate-client@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot-api/utils@0.0.1-492c132563ea6b40ae1fc5470dec4cd18768d182.1.0(transitive)
+ Added@polkadot/api@10.13.1(transitive)
+ Added@polkadot/api-augment@10.13.1(transitive)
+ Added@polkadot/api-base@10.13.1(transitive)
+ Added@polkadot/api-derive@10.13.1(transitive)
+ Added@polkadot/keyring@12.6.2(transitive)
+ Added@polkadot/networks@12.6.2(transitive)
+ Added@polkadot/rpc-augment@10.13.1(transitive)
+ Added@polkadot/rpc-core@10.13.1(transitive)
+ Added@polkadot/rpc-provider@10.13.1(transitive)
+ Added@polkadot/types@10.13.1(transitive)
+ Added@polkadot/types-augment@10.13.1(transitive)
+ Added@polkadot/types-codec@10.13.1(transitive)
+ Added@polkadot/types-create@10.13.1(transitive)
+ Added@polkadot/types-known@10.13.1(transitive)
+ Added@polkadot/types-support@10.13.1(transitive)
+ Added@polkadot/util@12.6.2(transitive)
+ Added@polkadot/util-crypto@12.6.2(transitive)
+ Added@polkadot/wasm-bridge@7.3.2(transitive)
+ Added@polkadot/wasm-crypto@7.3.2(transitive)
+ Added@polkadot/wasm-crypto-asmjs@7.3.2(transitive)
+ Added@polkadot/wasm-crypto-init@7.3.2(transitive)
+ Added@polkadot/wasm-crypto-wasm@7.3.2(transitive)
+ Added@polkadot/wasm-util@7.3.2(transitive)
+ Added@polkadot/x-bigint@12.6.2(transitive)
+ Added@polkadot/x-fetch@12.6.2(transitive)
+ Added@polkadot/x-global@12.6.2(transitive)
+ Added@polkadot/x-randomvalues@12.6.2(transitive)
+ Added@polkadot/x-textdecoder@12.6.2(transitive)
+ Added@polkadot/x-textencoder@12.6.2(transitive)
+ Added@polkadot/x-ws@12.6.2(transitive)
+ Added@scure/base@1.1.9(transitive)
+ Added@scure/bip32@1.4.0(transitive)
+ Added@scure/bip39@1.3.0(transitive)
+ Added@substrate/connect@0.8.8(transitive)
+ Added@substrate/connect-extension-protocol@2.1.0(transitive)
+ Added@substrate/connect-known-chains@1.4.0(transitive)
+ Added@substrate/light-client-extension-helpers@0.0.4(transitive)
+ Added@substrate/ss58-registry@1.50.0(transitive)
+ Added@types/bn.js@5.1.6(transitive)
+ Added@types/node@18.15.1322.5.5(transitive)
+ Addedaes-js@4.0.0-beta.5(transitive)
+ Addedavailable-typed-arrays@1.0.7(transitive)
+ Addedbn.js@5.2.1(transitive)
+ Addedcall-bind@1.0.7(transitive)
+ Addeddata-uri-to-buffer@4.0.1(transitive)
+ Addeddebug@4.3.7(transitive)
+ Addeddefine-data-property@1.1.4(transitive)
+ Addedes-define-property@1.0.0(transitive)
+ Addedes-errors@1.3.0(transitive)
+ Addedethereum-cryptography@2.2.1(transitive)
+ Addedethers@6.13.2(transitive)
+ Addedeventemitter3@5.0.1(transitive)
+ Addedfetch-blob@3.2.0(transitive)
+ Addedfor-each@0.3.3(transitive)
+ Addedformdata-polyfill@4.0.10(transitive)
+ Addedfunction-bind@1.1.2(transitive)
+ Addedget-intrinsic@1.2.4(transitive)
+ Addedgopd@1.0.1(transitive)
+ Addedhas-property-descriptors@1.0.2(transitive)
+ Addedhas-proto@1.0.3(transitive)
+ Addedhas-symbols@1.0.3(transitive)
+ Addedhas-tostringtag@1.0.2(transitive)
+ Addedhasown@2.0.2(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-arguments@1.1.1(transitive)
+ Addedis-callable@1.2.7(transitive)
+ Addedis-generator-function@1.0.10(transitive)
+ Addedis-typed-array@1.1.13(transitive)
+ Addedjson-stringify-safe@5.0.1(transitive)
+ Addedlodash@4.17.21(transitive)
+ Addedmock-socket@9.3.1(transitive)
+ Addedms@2.1.3(transitive)
+ Addednock@13.5.5(transitive)
+ Addednode-domexception@1.0.0(transitive)
+ Addednode-fetch@3.3.2(transitive)
+ Addedpossible-typed-array-names@1.0.0(transitive)
+ Addedpropagate@2.0.1(transitive)
+ Addedrxjs@7.8.1(transitive)
+ Addedscale-ts@1.6.0(transitive)
+ Addedset-function-length@1.2.2(transitive)
+ Addedsmoldot@2.0.22(transitive)
+ Addedtslib@2.4.02.7.0(transitive)
+ Addedundici-types@6.19.8(transitive)
+ Addedutil@0.12.5(transitive)
+ Addedweb-streams-polyfill@3.3.3(transitive)
+ Addedweb3-errors@1.3.0(transitive)
+ Addedweb3-types@1.8.0(transitive)
+ Addedweb3-validator@2.0.6(transitive)
+ Addedwhich-typed-array@1.1.15(transitive)
+ Addedws@8.17.18.18.0(transitive)
+ Addedzod@3.23.8(transitive)