@paraspell/sdk 4.0.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,59 +1,50 @@
1
- # @paraspell/sdk
2
-
3
- ![Full name (3)](https://user-images.githubusercontent.com/55763425/197985791-fc7afa52-061d-413a-bbe9-bf1123f16a50.png)
4
-
5
- [![npm version][npm-version-src]][npm-version-href]
6
-
7
- [![npm downloads][npm-downloads-src]][npm-downloads-href]
8
-
9
- [![Known Vulnerabilities](https://snyk.io/test/github/paraspell/sdk/badge.svg)](https://snyk.io/test/github/paraspell/sdk)
10
-
11
- SDK For XCM & XCMP handling made with ❤️ by ParaSpell✨. It is no longer necessary to construct calls manually. @paraspell/sdk handles this for you. Feel free to become a magician and try your paraSPELLS 🧙✨.
12
-
13
- ##### Currently supporting 50 Polkadot & Kusama nodes list [here](https://github.com/paraspell/sdk/blob/main/docs/supportedNodes.md).
14
-
15
- ### Check out our brand new Wiki documentation! [Wiki docs](https://paraspell.github.io/docs/)
16
-
17
- ## Usage
18
-
19
- **Install package:**
20
-
21
- #### Since version 1.0.0
22
-
23
- Our SDK introduced all Polkadot libraries as peer dependencies. The reason for this is, that most of the projects use these libraries in some way already and it fixes issues with unmet dependency warnings. Make sure your project has them. You can install them by following the command:
24
-
25
- ##### Install DEPS via npm||yarn||pnpm
1
+ <br /><br />
2
+
3
+ <div align="center">
4
+ <h1 align="center">@paraspell/sdk</h1>
5
+ <h4 align="center"> SDK for handling XCM asset transfers across Polkadot and Kusama ecosystems. </h4>
6
+ <p align="center">
7
+ <a href="https://npmjs.com/package/@paraspell/sdk">
8
+ <img alt="version" src="https://img.shields.io/npm/v/@paraspell/sdk?style=flat-square" />
9
+ </a>
10
+ <a href="https://npmjs.com/package/@paraspell/sdk">
11
+ <img alt="downloads" src="https://img.shields.io/npm/dm/@paraspell/sdk?style=flat-square" />
12
+ </a>
13
+ <a href="https://github.com/paraspell/xcm-sdk/actions">
14
+ <img alt="build" src="https://github.com/paraspell/xcm-sdk/actions/workflows/release.yml/badge.svg" />
15
+ </a>
16
+ <a href="https://snyk.io/test/github/paraspell/sdk">
17
+ <img alt="snyk" src="https://snyk.io/test/github/paraspell/sdk/badge.svg" />
18
+ </a>
19
+ </p>
20
+ <p>Currently supporting 50 Polkadot & Kusama nodes list <a href = "https://github.com/paraspell/sdk/blob/main/docs/supportedNodes.md"\>[here]</p>
21
+ <p>SDK documentation <a href = "https://paraspell.github.io/docs/" \>[here]</p>
22
+ </div>
23
+
24
+ <br /><br />
25
+ <br /><br />
26
+ ## Installation
27
+
28
+ #### Install dependencies
26
29
 
27
30
  ```
28
- //npm
29
- npm install @polkadot/api @polkadot/types @polkadot/api-base @polkadot/apps-config @polkadot/util
30
- //yarn
31
- yarn add @polkadot/api @polkadot/types @polkadot/api-base @polkadot/apps-config @polkadot/util
32
- //pnpm
33
- pnpm install @polkadot/api @polkadot/types @polkadot/api-base @polkadot/apps-config @polkadot/util
31
+ pnpm||yarn||npm install @polkadot/api @polkadot/types @polkadot/api-base @polkadot/apps-config @polkadot/util
34
32
  ```
35
33
 
36
- ##### Install SDK via npm||yarn||pnpm
34
+ #### Install SDK
37
35
 
38
36
  ```
39
- //npm
40
- npm install @paraspell/sdk
41
- //yarn
42
- yarn add @paraspell/sdk
43
- //pnpm
44
- pnpm install @paraspell/sdk
37
+ pnpm||yarn||npm install @paraspell/sdk
45
38
  ```
46
39
 
47
- ##### Importing package to your project:
48
-
49
- If you wish to use XCM, HRMP and XYK Pallets only you can import Builder like this:
40
+ #### Importing package to your project:
50
41
 
42
+ Builder pattern:
51
43
  ```js
52
44
  import { Builder } from '@paraspell/sdk'
53
45
  ```
54
46
 
55
- Old function like import (With assets):
56
-
47
+ Other patterns:
57
48
  ```js
58
49
  // ESM
59
50
  import * as paraspell from '@paraspell/sdk'
@@ -62,160 +53,194 @@ import * as paraspell from '@paraspell/sdk'
62
53
  const paraspell = require('@paraspell/sdk')
63
54
  ```
64
55
 
65
- ## Currently implemented pallets
56
+ ## Implementation
66
57
 
67
- XCM pallet (Combined xTokens, polkadotXCM, ormlXTokens, XcmPallet & relayerXCM):
58
+ ```
59
+ NOTES:
60
+ - If you wish to transfer from Parachain that uses long IDs for example Moonbeam you have to add the character 'n' the end of currencyID. Eg: .currency(42259045809535163221576417993425387648n) will mean you transfer xcDOT.
61
+ - You can now use custom ParachainIDs if you wish to test in TestNet. Just add parachainID as an additional parameter eg: .to('Basilisk', 2948)
62
+ - You can now add optional parameter useKeepAlive which will ensure, that you send more than existential deposit.
63
+ ```
68
64
 
69
- Builder pattern XCM & HRMP construction
65
+ ### Builder pattern:
70
66
 
67
+ ##### Transfer assets from Parachain to Parachain
71
68
  ```ts
72
- //NOTE If you wish to transfer from Parachain that uses long IDs for example Moonbeam you have to add the character 'n' the end of currencyID. Eg: .currency(42259045809535163221576417993425387648n) will mean you transfer xcDOT.
73
- //NOTE2 You can now use custom ParachainIDs if you wish to test in TestNet. Just add parachainID as an additional parameter eg: .to('Basilisk', 2948)
74
- //NOTE3 XCM Transfer Builders now require await
75
- //NOTE4 You can now add optional parameter useKeepAlive which will ensure, that you send more than existential deposit.
76
- //NOTE5 API parameter in XCM messages is now optional!
77
-
78
- //Transfer tokens from Parachain to Parachain
79
- await Builder(/*node api - optional*/).from(NODE).to(NODE/*,customParaId - optional*/).currency(CurrencyString||CurrencyID).amount(amount).address(address).build()
80
-
81
- //Transfer tokens from the Relay chain to Parachain
82
- await Builder(/*node api - optional*/).to(NODE/*,customParaId - optional*/).amount(amount).address(address).build()
83
-
84
- //Transfer tokens from Parachain to Relay chain
85
- await Builder(/*node api - optional*/).from(NODE).amount(amount).address(address).build()
86
-
87
- //Use keepAlive example
88
- await Builder(/*node api - optional*/).from(NODE).amount(amount).address(address).useKeepAlive(destinationParaAPI).build()
89
-
90
- //Close HRMP channels
91
- Builder(api).from(NODE).closeChannel().inbound(inbound).outbound(outbound).build()
92
-
93
- //Open HRMP channels
94
- Builder(api).from(NODE).to(NODE).openChannel().maxSize(maxSize).maxMessageSize(maxMsgSize).build()'
69
+ await Builder(/*node api - optional*/)
70
+ .from(NODE)
71
+ .to(NODE/*,customParaId - optional*/)
72
+ .currency(CurrencyString||CurrencyID)
73
+ .amount(amount)
74
+ .address(address)
75
+ .build()
76
+ /*
77
+ EXAMPLE:
78
+ await Builder()
79
+ .from('Basilisk')
80
+ .to('Robonomics')
81
+ .currency('XRT')
82
+ .amount(1000000000000)
83
+ .address('4FCUYBMe2sbq5KosN22emsPUydS8XUwZhJ6VUZesmouGu6qd')
84
+ .build()
85
+ */
86
+ ```
87
+ ##### Transfer assets from the Relay chain to Parachain
88
+ ```ts
89
+ await Builder(/*node api - optional*/)
90
+ .to(NODE/*,customParaId - optional*/)
91
+ .amount(amount)
92
+ .address(address)
93
+ .build()
94
+ /*
95
+ EXAMPLE:
96
+ await Builder()
97
+ .to('AssetHubPolkadot')
98
+ .amount(1000000000000)
99
+ .address('141NGS2jjZca5Ss2Nysth2stJ6rimcnufCNHnh5ExSsftn7U')
100
+ .build()
101
+ */
102
+ ```
103
+ ##### Transfer assets from Parachain to Relay chain
104
+ ```ts
105
+ await Builder(/*node api - optional*/)
106
+ .from(NODE)
107
+ .amount(amount)
108
+ .address(address)
109
+ .build()
110
+ /*
111
+ EXAMPLE:
112
+ await Builder()
113
+ .from('AssetHubPolkadot')
114
+ .amount(1000000000000)
115
+ .address('141NGS2jjZca5Ss2Nysth2stJ6rimcnufCNHnh5ExSsftn7U')
116
+ .build()
117
+ */
118
+ ```
119
+ ##### Use keepAlive option
120
+ ```ts
121
+ await Builder(/*node api - optional*/)
122
+ .from(NODE)
123
+ .amount(amount)
124
+ .address(address)
125
+ .useKeepAlive(destinationParaAPI)
126
+ .build()
127
+ ```
128
+ ##### Close HRMP channels
129
+ ```ts
130
+ Builder(api)
131
+ .from(NODE)
132
+ .closeChannel()
133
+ .inbound(inbound)
134
+ .outbound(outbound)
135
+ .build()
95
136
  ```
96
137
 
97
- Function pattern XCM & HRMP construction
98
-
138
+ ##### Open HRMP channels
99
139
  ```ts
100
- //NOTE If you wish to transfer from Parachain that uses long IDs for example Moonbeam you have to add character 'n' the end of currencyID. Eg: currency = 42259045809535163221576417993425387648n will mean you transfer xcDOT.
101
- //NOTE2 You can now use custom ParachainIDs if you wish to test in TestNet. Just add parachainID as an additional parameter eg: .to('Basilisk', 2948)
102
- //NOTE3 XCM Transfer Builders now require await
103
- //NOTE4 You can now add optional parameter useKeepAlive which will ensure, that you send more than existential deposit.
104
- //NOTE5 API parameter in XCM messages is now optional!
140
+ Builder(api)
141
+ .from(NODE)
142
+ .to(NODE)
143
+ .openChannel()
144
+ .maxSize(maxSize)
145
+ .maxMessageSize(maxMsgSize)
146
+ .build()'
147
+ ```
105
148
 
106
- //Transfer tokens from Parachain to Parachain
149
+ ### Function pattern:
150
+ ```ts
151
+ // Transfer assets from Parachain to Parachain
107
152
  await paraspell.xcmPallet.send(api?: ApiPromise, origin: origin Parachain name string, currency: CurrencyString||CurrencyID, amount: any, to: destination address string, destination: destination Parachain ID, paraIdTo?: number,)
108
153
 
109
- //Transfer tokens from Parachain to Relay chain
154
+ // Transfer assets from Parachain to Relay chain
110
155
  await paraspell.xcmPallet.send(api?: ApiPromise, origin: origin Parachain name string, amount: any, to: destination address string, paraIdTo?: number,)
111
156
 
112
- //Transfer tokens from Relay chain to Parachain
157
+ // Transfer assets from Relay chain to Parachain
113
158
  await paraspell.xcmPallet.transferRelayToPara(api?: ApiPromise, destination: destination Parachain ID, amount: any, to: destination address string,paraIdTo?: number,)
114
159
 
115
- //Use keepAlive example
160
+ // Use keepAlive option
116
161
  await paraspell.xcmPallet.send(api?: ApiPromise, destination: TNode, amount: string | number | bigint, to: string, paraIdTo?: number, destApiForKeepAlive?: ApiPromise)
117
162
 
118
- //hrmp pallet:
119
- //Close HRMP channels
163
+ // Close HRMP channels
120
164
  paraspell.closeChannels.closeChannel(api: ApiPromise, origin: origin Parachain ID, inbound: number, outbound: number)
121
165
 
122
- //parasSudoWrapper pallet:
123
- //Open HRMP channels
166
+ // Open HRMP channels
124
167
  paraspell.openChannels.openChannel(api: ApiPromise, origin: origin Parachain ID, destination: destination Parachain ID, maxSize: number, maxMessageSize: number)
125
168
  ```
126
169
 
127
- Asset pallet construction:
170
+ ### Asset queries:
128
171
 
129
172
  ```ts
130
- //Returns assets object from assets.json for particular node including information about native and foreign assets
173
+ // Retrieve assets object from assets.json for particular node including information about native and foreign assets
131
174
  paraspell.assets.getAssetsObject(node: TNode)
132
175
 
133
- //Returns foreign assetId for a particular node and asset symbol
176
+ // Retrieve foreign assetId for a particular node and asset symbol
134
177
  paraspell.assets.getAssetId(node: TNode, symbol: string)
135
178
 
136
- //Returns the symbol of the relay chain for a particular node. Either "DOT" or "KSM"
179
+ // Retrieve the symbol of the relay chain for a particular node. Either "DOT" or "KSM"
137
180
  paraspell.assets.getRelayChainSymbol(node: TNode)
138
181
 
139
- //Returns string array of native assets symbols for particular node
182
+ // Retrieve string array of native assets symbols for particular node
140
183
  paraspell.assets.getNativeAssets(node: TNode)
141
184
 
142
- //Returns object array of foreign assets for a particular node. Each object has a symbol and assetId property
185
+ // Retrieve object array of foreign assets for a particular node. Each object has a symbol and assetId property
143
186
  paraspell.assets.getOtherAssets(node: TNode)
144
187
 
145
- //Returns string array of all assets symbols. (native and foreign assets are merged into a single array)
188
+ // Retrieve string array of all assets symbols. (native and foreign assets are merged into a single array)
146
189
  paraspell.assets.getAllAssetsSymbols(node: TNode)
147
190
 
148
- //Checks if a node supports a particular asset. (Both native and foreign assets are searched). Returns boolean
191
+ // Check if a node supports a particular asset. (Both native and foreign assets are searched). Returns boolean
149
192
  paraspell.assets.hasSupportForAsset(node: TNode, symbol: string)
150
193
 
151
- //Get decimals for specific asset
194
+ // Get decimals for specific asset
152
195
  paraspell.assets.getAssetDecimals(node: TNode, symbol: string)
153
196
 
154
- //Get specific node id
197
+ // Get specific node id
155
198
  paraspell.assets.getParaId(node: TNode)
156
199
 
157
- //Get specific TNode from nodeID
200
+ // Get specific TNode from nodeID
158
201
  paraspell.assets.getTNode(nodeID: number)
159
202
 
160
- //Import all compatible nodes as constant:
203
+ // Import all compatible nodes as constant
161
204
  paraspell.NODE_NAMES
162
205
  ```
163
206
 
164
- Node pallet operations
165
-
166
- ```js
207
+ ### Parachain XCM Pallet queries
208
+ ```ts
167
209
  import { getDefaultPallet, getSupportedPallets, SUPPORTED_PALLETS } from '@paraspell/sdk'
168
210
 
169
- //Returns default pallet for specific parachain node
211
+ //Retrieve default pallet for specific Parachain
170
212
  getDefaultPallet(node: TNode)
171
213
 
172
- //Returns an array of supported pallets for a specific parachain node.
214
+ // Returns an array of supported pallets for a specific Parachain
173
215
  getSupportedPallets(node: TNode)
174
216
 
175
- //Prints all pallets that are currently supported
217
+ // Print all pallets that are currently supported
176
218
  console.log(SUPPORTED_PALLETS)
177
219
  ```
178
220
 
179
- Existential deposit query
221
+ ### Existential deposit queries
180
222
  ```ts
181
223
  import { getExistentialDeposit } from "@paraspell/sdk";
182
224
 
183
225
  const ed = getExistentialDeposit('Acala')
184
226
  ```
185
227
 
186
- ##### Example of usage can be found in the UI repository [here](https://github.com/paraspell/ui) or in the Astarot repository [here](https://github.com/paraspell/astarot)
187
-
188
- ##### A list of currently compatible nodes can be found [here](https://github.com/paraspell/sdk/blob/beta-pre-release/docs/supportedNodes.md)
189
-
190
- ## 💻 Development
191
-
192
- - Clone this repository
193
-
194
- - Enable [Corepack](https://github.com/nodejs/corepack) using `corepack enable` (use `npm i -g corepack` for Node.js < 16.10)
195
-
196
- - Install dependencies using `pnpm install`
228
+ ## 💻 Tests
229
+ - Run compilation using `pnpm compile`
197
230
 
198
- - Run compilation test using `pnpm compile`
231
+ - Run linter using `pnpm lint`
199
232
 
200
- - Run linting test using `pnpm lint`
233
+ - Run unit tests using `pnpm test`
201
234
 
202
- - Run updateAssets script using `pnpm updateAssets`
235
+ - Run end-to-end tests using `pnpm test:e2e`
203
236
 
204
- - Run updatePallets script using `pnpm updatePallets`
237
+ - Update Parachain registered assets in the map using script - `pnpm updateAssets`
205
238
 
206
- - Run tests using `pnpm test`
239
+ - Update XCM pallets in the map using script - `pnpm updatePallets`
207
240
 
208
- - Run all checks using `pnpm runAll`
241
+ - Update existential deposits in the map using script - `pnpm updateEds`
209
242
 
210
- ## Founded by
211
-
212
- [<img width="245" alt="web3 foundation_grants_badge_black" src="https://user-images.githubusercontent.com/55763425/211145923-f7ee2a57-3e63-4b7d-9674-2da9db46b2ee.png">](https://github.com/w3f/Grants-Program/pull/1245)
213
-
214
- [<img width="245" alt="web3 foundation_grants_badge_white (1)" src="https://user-images.githubusercontent.com/55763425/211069914-bbec9e28-7a0d-417b-8149-087b7f04e57e.png">](https://github.com/w3f/Grants-Program/pull/1245)
215
-
216
- [<img width="245" alt="kusamacommunity" src="https://user-images.githubusercontent.com/55763425/227636288-e0aa6f2a-9eb6-4af2-bc6b-d572f145a2f0.png">](https://kusama.subsquare.io/referenda/referendum/123)
217
-
218
- [![logo-v1](https://user-images.githubusercontent.com/55763425/204865221-90d2b3cd-f2ac-48a2-a367-08722aa8e923.svg)](https://bsx.fi/)
243
+ - Run all core tests and checks using `pnpm runAll`
219
244
 
220
245
  ## License
221
246
 
@@ -223,13 +248,18 @@ Made with 💛 by [ParaSpell✨](https://github.com/paraspell)
223
248
 
224
249
  Published under [MIT License](https://github.com/paraspell/sdk/blob/main/LICENSE).
225
250
 
226
- <!-- Badges -->
227
-
228
- [npm-version-src]: https://img.shields.io/npm/v/@paraspell/sdk?style=flat-square
229
- [npm-version-href]: https://npmjs.com/package/@paraspell/sdk
230
- [npm-downloads-src]: https://img.shields.io/npm/dm/@paraspell/sdk?style=flat-square
231
- [npm-downloads-href]: https://npmjs.com/package/@paraspell/sdk
232
- [github-actions-src]: https://img.shields.io/github/workflow/status/unjs/@paraspell/sdk/ci/main?style=flat-square
233
- [github-actions-href]: https://github.com/unjs/@paraspell/sdk/actions?query=workflow%3Aci
234
- [codecov-src]: https://img.shields.io/codecov/c/gh/unjs/@paraspell/sdk/main?style=flat-square
235
- [codecov-href]: https://codecov.io/gh/unjs/@paraspell/sdk
251
+ ## Support
252
+
253
+ <div align="center">
254
+ <p align="center">
255
+ <a href="https://github.com/w3f/Grants-Program/pull/1245">
256
+ <img width="200" alt="version" src="https://user-images.githubusercontent.com/55763425/211145923-f7ee2a57-3e63-4b7d-9674-2da9db46b2ee.png" />
257
+ </a>
258
+ <a href="https://kusama.subsquare.io/referenda/277">
259
+ <img width="200" alt="version" src="https://github.com/paraspell/xcm-sdk/assets/55763425/9ed74ebe-9b29-4efd-8e3e-7467ac4caed6" />
260
+ </a>
261
+ <a href="https://bsx.fi/">
262
+ <img width="200" alt="version" src="https://user-images.githubusercontent.com/55763425/204865221-90d2b3cd-f2ac-48a2-a367-08722aa8e923.svg" />
263
+ </a>
264
+ </p>
265
+ </div>
package/dist/index.cjs CHANGED
@@ -4660,6 +4660,19 @@ var AssetHubKusama$3 = {
4660
4660
  }
4661
4661
  ]
4662
4662
  };
4663
+ var CoretimeKusama$3 = {
4664
+ paraId: 1005,
4665
+ relayChainAssetSymbol: "KSM",
4666
+ nativeAssetSymbol: "KSM",
4667
+ nativeAssets: [
4668
+ {
4669
+ symbol: "KSM",
4670
+ decimals: 12
4671
+ }
4672
+ ],
4673
+ otherAssets: [
4674
+ ]
4675
+ };
4663
4676
  var Turing$3 = {
4664
4677
  paraId: 2114,
4665
4678
  relayChainAssetSymbol: "KSM",
@@ -5315,6 +5328,7 @@ var assets = {
5315
5328
  Robonomics: Robonomics$3,
5316
5329
  Shiden: Shiden$3,
5317
5330
  AssetHubKusama: AssetHubKusama$3,
5331
+ CoretimeKusama: CoretimeKusama$3,
5318
5332
  Turing: Turing$3,
5319
5333
  Equilibrium: Equilibrium$3,
5320
5334
  Unique: Unique$3,
@@ -5349,6 +5363,7 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
5349
5363
  Clover: Clover$2,
5350
5364
  Collectives: Collectives$2,
5351
5365
  ComposableFinance: ComposableFinance$3,
5366
+ CoretimeKusama: CoretimeKusama$3,
5352
5367
  Crab: Crab$3,
5353
5368
  Crust: Crust$3,
5354
5369
  CrustShadow: CrustShadow$3,
@@ -6537,6 +6552,38 @@ var AssetHubKusama$2 = /*#__PURE__*/function (_ParachainNode) {
6537
6552
  return AssetHubKusama;
6538
6553
  }(ParachainNode);
6539
6554
 
6555
+ var CoretimeKusama$2 = /*#__PURE__*/function (_ParachainNode) {
6556
+ _inherits(CoretimeKusama, _ParachainNode);
6557
+ function CoretimeKusama() {
6558
+ var _this;
6559
+ _classCallCheck(this, CoretimeKusama);
6560
+ _this = _callSuper(this, CoretimeKusama, ['CoretimeKusama', 'KusamaCoretime', 'kusama', exports.Version.V3]);
6561
+ _this._assetCheckEnabled = false;
6562
+ return _this;
6563
+ }
6564
+ _createClass(CoretimeKusama, [{
6565
+ key: "transferPolkadotXCM",
6566
+ value: function transferPolkadotXCM(input) {
6567
+ // TESTED block hash on Rococo: 0x78ace0f1bf7cac9a42e56143321b617d98327e2750f795efb0abb833025c9082
6568
+ var scenario = input.scenario;
6569
+ var method = scenario === 'ParaToPara' ? 'limitedReserveTransferAssets' : 'limitedTeleportAssets';
6570
+ return PolkadotXCMTransferImpl.transferPolkadotXCM(input, method, 'Unlimited');
6571
+ }
6572
+ }, {
6573
+ key: "transferRelayToPara",
6574
+ value: function transferRelayToPara(options) {
6575
+ // TESTED block hash on Rococo: 0x28929f7b2aeadbf3333f05d35bed18214a4b23dd270bd072f99e8a0131d22456
6576
+ // https://rococo.subscan.io/extrinsic/0x469eec7dccb22696b0c95cf4f5eec4b367ad3dc23243a346cc2aad3cc9522800
6577
+ return {
6578
+ module: 'xcmPallet',
6579
+ section: 'limitedTeleportAssets',
6580
+ parameters: constructRelayToParaParameters(options, exports.Version.V3, true)
6581
+ };
6582
+ }
6583
+ }]);
6584
+ return CoretimeKusama;
6585
+ }(ParachainNode);
6586
+
6540
6587
  var Encointer$2 = /*#__PURE__*/function (_ParachainNode) {
6541
6588
  _inherits(Encointer, _ParachainNode);
6542
6589
  function Encointer() {
@@ -7077,7 +7124,7 @@ var Phala$1 = /*#__PURE__*/function (_ParachainNode) {
7077
7124
  }(ParachainNode);
7078
7125
 
7079
7126
  // Contains supported Parachains and exports supported XCM Pallets
7080
- var NODE_NAMES = ['AssetHubPolkadot', 'Acala', 'Astar', 'BifrostPolkadot', 'Bitgreen', 'Centrifuge', 'Clover', 'ComposableFinance', 'Darwinia', 'HydraDX', 'Interlay', 'Litentry', 'Moonbeam', 'Parallel', 'AssetHubKusama', 'Encointer', 'Altair', 'Amplitude', 'Bajun', 'Basilisk', 'BifrostKusama', 'Pioneer', 'Calamari', 'CrustShadow', 'Crab', 'Imbue', 'Integritee', 'InvArchTinker', 'Karura', 'Kintsugi', 'Litmus', 'Mangata', 'Moonriver', 'ParallelHeiko', 'Picasso', 'Quartz', 'Robonomics', 'Shiden', 'Turing', 'Equilibrium', 'Unique', 'Crust', 'Manta', 'Genshiro', 'Nodle', 'OriginTrail', 'Pendulum', 'Polkadex', 'Zeitgeist', 'Collectives', 'Khala', 'Phala'];
7127
+ var NODE_NAMES = ['AssetHubPolkadot', 'Acala', 'Astar', 'BifrostPolkadot', 'Bitgreen', 'Centrifuge', 'Clover', 'ComposableFinance', 'Darwinia', 'HydraDX', 'Interlay', 'Litentry', 'Moonbeam', 'Parallel', 'AssetHubKusama', 'CoretimeKusama', 'Encointer', 'Altair', 'Amplitude', 'Bajun', 'Basilisk', 'BifrostKusama', 'Pioneer', 'Calamari', 'CrustShadow', 'Crab', 'Imbue', 'Integritee', 'InvArchTinker', 'Karura', 'Kintsugi', 'Litmus', 'Mangata', 'Moonriver', 'ParallelHeiko', 'Picasso', 'Quartz', 'Robonomics', 'Shiden', 'Turing', 'Equilibrium', 'Unique', 'Crust', 'Manta', 'Genshiro', 'Nodle', 'OriginTrail', 'Pendulum', 'Polkadex', 'Zeitgeist', 'Collectives', 'Khala', 'Phala'];
7081
7128
  var NODES_WITH_RELAY_CHAINS = [].concat(NODE_NAMES, ['Polkadot', 'Kusama']);
7082
7129
  var nodes = {
7083
7130
  AssetHubPolkadot: new AssetHubPolkadot$2(),
@@ -7098,6 +7145,7 @@ var nodes = {
7098
7145
  Moonbeam: new Moonbeam$2(),
7099
7146
  Parallel: new Parallel$2(),
7100
7147
  AssetHubKusama: new AssetHubKusama$2(),
7148
+ CoretimeKusama: new CoretimeKusama$2(),
7101
7149
  Encointer: new Encointer$2(),
7102
7150
  Altair: new Altair$2(),
7103
7151
  Amplitude: new Amplitude$2(),
@@ -7344,6 +7392,7 @@ var Litentry$1 = "100000000000";
7344
7392
  var Moonbeam$1 = "0";
7345
7393
  var Parallel$1 = "100000000000";
7346
7394
  var AssetHubKusama$1 = "33333333";
7395
+ var CoretimeKusama$1 = "3333333";
7347
7396
  var Encointer$1 = "33333333";
7348
7397
  var Altair$1 = "1000000000000";
7349
7398
  var Amplitude$1 = "1000000000";
@@ -7395,6 +7444,7 @@ var existentialDeposits = {
7395
7444
  Moonbeam: Moonbeam$1,
7396
7445
  Parallel: Parallel$1,
7397
7446
  AssetHubKusama: AssetHubKusama$1,
7447
+ CoretimeKusama: CoretimeKusama$1,
7398
7448
  Encointer: Encointer$1,
7399
7449
  Altair: Altair$1,
7400
7450
  Amplitude: Amplitude$1,
@@ -7450,6 +7500,7 @@ var edMapJson = /*#__PURE__*/Object.freeze({
7450
7500
  Calamari: Calamari$1,
7451
7501
  Centrifuge: Centrifuge$1,
7452
7502
  ComposableFinance: ComposableFinance$1,
7503
+ CoretimeKusama: CoretimeKusama$1,
7453
7504
  Crab: Crab$1,
7454
7505
  Crust: Crust$1,
7455
7506
  CrustShadow: CrustShadow$1,
@@ -8586,6 +8637,12 @@ var Bitgreen = {
8586
8637
  "PolkadotXcm"
8587
8638
  ]
8588
8639
  };
8640
+ var CoretimeKusama = {
8641
+ defaultPallet: "PolkadotXcm",
8642
+ supportedPallets: [
8643
+ "PolkadotXcm"
8644
+ ]
8645
+ };
8589
8646
  var Centrifuge = {
8590
8647
  defaultPallet: "XTokens",
8591
8648
  supportedPallets: [
@@ -8913,6 +8970,7 @@ var pallets = {
8913
8970
  Astar: Astar,
8914
8971
  BifrostPolkadot: BifrostPolkadot,
8915
8972
  Bitgreen: Bitgreen,
8973
+ CoretimeKusama: CoretimeKusama,
8916
8974
  Centrifuge: Centrifuge,
8917
8975
  Clover: Clover,
8918
8976
  ComposableFinance: ComposableFinance,
@@ -8980,6 +9038,7 @@ var palletsMapJson = /*#__PURE__*/Object.freeze({
8980
9038
  Clover: Clover,
8981
9039
  Collectives: Collectives,
8982
9040
  ComposableFinance: ComposableFinance,
9041
+ CoretimeKusama: CoretimeKusama,
8983
9042
  Crab: Crab,
8984
9043
  Crust: Crust,
8985
9044
  CrustShadow: CrustShadow,
package/dist/index.d.ts CHANGED
@@ -21,8 +21,8 @@ declare abstract class ParachainNode {
21
21
  createPolkadotXcmHeader(scenario: TScenario, paraId?: number): any;
22
22
  }
23
23
 
24
- declare const NODE_NAMES: readonly ["AssetHubPolkadot", "Acala", "Astar", "BifrostPolkadot", "Bitgreen", "Centrifuge", "Clover", "ComposableFinance", "Darwinia", "HydraDX", "Interlay", "Litentry", "Moonbeam", "Parallel", "AssetHubKusama", "Encointer", "Altair", "Amplitude", "Bajun", "Basilisk", "BifrostKusama", "Pioneer", "Calamari", "CrustShadow", "Crab", "Imbue", "Integritee", "InvArchTinker", "Karura", "Kintsugi", "Litmus", "Mangata", "Moonriver", "ParallelHeiko", "Picasso", "Quartz", "Robonomics", "Shiden", "Turing", "Equilibrium", "Unique", "Crust", "Manta", "Genshiro", "Nodle", "OriginTrail", "Pendulum", "Polkadex", "Zeitgeist", "Collectives", "Khala", "Phala"];
25
- declare const NODES_WITH_RELAY_CHAINS: readonly ["AssetHubPolkadot", "Acala", "Astar", "BifrostPolkadot", "Bitgreen", "Centrifuge", "Clover", "ComposableFinance", "Darwinia", "HydraDX", "Interlay", "Litentry", "Moonbeam", "Parallel", "AssetHubKusama", "Encointer", "Altair", "Amplitude", "Bajun", "Basilisk", "BifrostKusama", "Pioneer", "Calamari", "CrustShadow", "Crab", "Imbue", "Integritee", "InvArchTinker", "Karura", "Kintsugi", "Litmus", "Mangata", "Moonriver", "ParallelHeiko", "Picasso", "Quartz", "Robonomics", "Shiden", "Turing", "Equilibrium", "Unique", "Crust", "Manta", "Genshiro", "Nodle", "OriginTrail", "Pendulum", "Polkadex", "Zeitgeist", "Collectives", "Khala", "Phala", "Polkadot", "Kusama"];
24
+ declare const NODE_NAMES: readonly ["AssetHubPolkadot", "Acala", "Astar", "BifrostPolkadot", "Bitgreen", "Centrifuge", "Clover", "ComposableFinance", "Darwinia", "HydraDX", "Interlay", "Litentry", "Moonbeam", "Parallel", "AssetHubKusama", "CoretimeKusama", "Encointer", "Altair", "Amplitude", "Bajun", "Basilisk", "BifrostKusama", "Pioneer", "Calamari", "CrustShadow", "Crab", "Imbue", "Integritee", "InvArchTinker", "Karura", "Kintsugi", "Litmus", "Mangata", "Moonriver", "ParallelHeiko", "Picasso", "Quartz", "Robonomics", "Shiden", "Turing", "Equilibrium", "Unique", "Crust", "Manta", "Genshiro", "Nodle", "OriginTrail", "Pendulum", "Polkadex", "Zeitgeist", "Collectives", "Khala", "Phala"];
25
+ declare const NODES_WITH_RELAY_CHAINS: readonly ["AssetHubPolkadot", "Acala", "Astar", "BifrostPolkadot", "Bitgreen", "Centrifuge", "Clover", "ComposableFinance", "Darwinia", "HydraDX", "Interlay", "Litentry", "Moonbeam", "Parallel", "AssetHubKusama", "CoretimeKusama", "Encointer", "Altair", "Amplitude", "Bajun", "Basilisk", "BifrostKusama", "Pioneer", "Calamari", "CrustShadow", "Crab", "Imbue", "Integritee", "InvArchTinker", "Karura", "Kintsugi", "Litmus", "Mangata", "Moonriver", "ParallelHeiko", "Picasso", "Quartz", "Robonomics", "Shiden", "Turing", "Equilibrium", "Unique", "Crust", "Manta", "Genshiro", "Nodle", "OriginTrail", "Pendulum", "Polkadex", "Zeitgeist", "Collectives", "Khala", "Phala", "Polkadot", "Kusama"];
26
26
  declare const SUPPORTED_PALLETS: readonly ["XTokens", "OrmlXTokens", "PolkadotXcm", "RelayerXcm", "XTransfer"];
27
27
 
28
28
  type UpdateFunction = (name: string, index: number) => string;
package/dist/index.mjs CHANGED
@@ -4658,6 +4658,19 @@ var AssetHubKusama$3 = {
4658
4658
  }
4659
4659
  ]
4660
4660
  };
4661
+ var CoretimeKusama$3 = {
4662
+ paraId: 1005,
4663
+ relayChainAssetSymbol: "KSM",
4664
+ nativeAssetSymbol: "KSM",
4665
+ nativeAssets: [
4666
+ {
4667
+ symbol: "KSM",
4668
+ decimals: 12
4669
+ }
4670
+ ],
4671
+ otherAssets: [
4672
+ ]
4673
+ };
4661
4674
  var Turing$3 = {
4662
4675
  paraId: 2114,
4663
4676
  relayChainAssetSymbol: "KSM",
@@ -5313,6 +5326,7 @@ var assets = {
5313
5326
  Robonomics: Robonomics$3,
5314
5327
  Shiden: Shiden$3,
5315
5328
  AssetHubKusama: AssetHubKusama$3,
5329
+ CoretimeKusama: CoretimeKusama$3,
5316
5330
  Turing: Turing$3,
5317
5331
  Equilibrium: Equilibrium$3,
5318
5332
  Unique: Unique$3,
@@ -5347,6 +5361,7 @@ var assetsMapJson = /*#__PURE__*/Object.freeze({
5347
5361
  Clover: Clover$2,
5348
5362
  Collectives: Collectives$2,
5349
5363
  ComposableFinance: ComposableFinance$3,
5364
+ CoretimeKusama: CoretimeKusama$3,
5350
5365
  Crab: Crab$3,
5351
5366
  Crust: Crust$3,
5352
5367
  CrustShadow: CrustShadow$3,
@@ -6535,6 +6550,38 @@ var AssetHubKusama$2 = /*#__PURE__*/function (_ParachainNode) {
6535
6550
  return AssetHubKusama;
6536
6551
  }(ParachainNode);
6537
6552
 
6553
+ var CoretimeKusama$2 = /*#__PURE__*/function (_ParachainNode) {
6554
+ _inherits(CoretimeKusama, _ParachainNode);
6555
+ function CoretimeKusama() {
6556
+ var _this;
6557
+ _classCallCheck(this, CoretimeKusama);
6558
+ _this = _callSuper(this, CoretimeKusama, ['CoretimeKusama', 'KusamaCoretime', 'kusama', Version.V3]);
6559
+ _this._assetCheckEnabled = false;
6560
+ return _this;
6561
+ }
6562
+ _createClass(CoretimeKusama, [{
6563
+ key: "transferPolkadotXCM",
6564
+ value: function transferPolkadotXCM(input) {
6565
+ // TESTED block hash on Rococo: 0x78ace0f1bf7cac9a42e56143321b617d98327e2750f795efb0abb833025c9082
6566
+ var scenario = input.scenario;
6567
+ var method = scenario === 'ParaToPara' ? 'limitedReserveTransferAssets' : 'limitedTeleportAssets';
6568
+ return PolkadotXCMTransferImpl.transferPolkadotXCM(input, method, 'Unlimited');
6569
+ }
6570
+ }, {
6571
+ key: "transferRelayToPara",
6572
+ value: function transferRelayToPara(options) {
6573
+ // TESTED block hash on Rococo: 0x28929f7b2aeadbf3333f05d35bed18214a4b23dd270bd072f99e8a0131d22456
6574
+ // https://rococo.subscan.io/extrinsic/0x469eec7dccb22696b0c95cf4f5eec4b367ad3dc23243a346cc2aad3cc9522800
6575
+ return {
6576
+ module: 'xcmPallet',
6577
+ section: 'limitedTeleportAssets',
6578
+ parameters: constructRelayToParaParameters(options, Version.V3, true)
6579
+ };
6580
+ }
6581
+ }]);
6582
+ return CoretimeKusama;
6583
+ }(ParachainNode);
6584
+
6538
6585
  var Encointer$2 = /*#__PURE__*/function (_ParachainNode) {
6539
6586
  _inherits(Encointer, _ParachainNode);
6540
6587
  function Encointer() {
@@ -7075,7 +7122,7 @@ var Phala$1 = /*#__PURE__*/function (_ParachainNode) {
7075
7122
  }(ParachainNode);
7076
7123
 
7077
7124
  // Contains supported Parachains and exports supported XCM Pallets
7078
- var NODE_NAMES = ['AssetHubPolkadot', 'Acala', 'Astar', 'BifrostPolkadot', 'Bitgreen', 'Centrifuge', 'Clover', 'ComposableFinance', 'Darwinia', 'HydraDX', 'Interlay', 'Litentry', 'Moonbeam', 'Parallel', 'AssetHubKusama', 'Encointer', 'Altair', 'Amplitude', 'Bajun', 'Basilisk', 'BifrostKusama', 'Pioneer', 'Calamari', 'CrustShadow', 'Crab', 'Imbue', 'Integritee', 'InvArchTinker', 'Karura', 'Kintsugi', 'Litmus', 'Mangata', 'Moonriver', 'ParallelHeiko', 'Picasso', 'Quartz', 'Robonomics', 'Shiden', 'Turing', 'Equilibrium', 'Unique', 'Crust', 'Manta', 'Genshiro', 'Nodle', 'OriginTrail', 'Pendulum', 'Polkadex', 'Zeitgeist', 'Collectives', 'Khala', 'Phala'];
7125
+ var NODE_NAMES = ['AssetHubPolkadot', 'Acala', 'Astar', 'BifrostPolkadot', 'Bitgreen', 'Centrifuge', 'Clover', 'ComposableFinance', 'Darwinia', 'HydraDX', 'Interlay', 'Litentry', 'Moonbeam', 'Parallel', 'AssetHubKusama', 'CoretimeKusama', 'Encointer', 'Altair', 'Amplitude', 'Bajun', 'Basilisk', 'BifrostKusama', 'Pioneer', 'Calamari', 'CrustShadow', 'Crab', 'Imbue', 'Integritee', 'InvArchTinker', 'Karura', 'Kintsugi', 'Litmus', 'Mangata', 'Moonriver', 'ParallelHeiko', 'Picasso', 'Quartz', 'Robonomics', 'Shiden', 'Turing', 'Equilibrium', 'Unique', 'Crust', 'Manta', 'Genshiro', 'Nodle', 'OriginTrail', 'Pendulum', 'Polkadex', 'Zeitgeist', 'Collectives', 'Khala', 'Phala'];
7079
7126
  var NODES_WITH_RELAY_CHAINS = [].concat(NODE_NAMES, ['Polkadot', 'Kusama']);
7080
7127
  var nodes = {
7081
7128
  AssetHubPolkadot: new AssetHubPolkadot$2(),
@@ -7096,6 +7143,7 @@ var nodes = {
7096
7143
  Moonbeam: new Moonbeam$2(),
7097
7144
  Parallel: new Parallel$2(),
7098
7145
  AssetHubKusama: new AssetHubKusama$2(),
7146
+ CoretimeKusama: new CoretimeKusama$2(),
7099
7147
  Encointer: new Encointer$2(),
7100
7148
  Altair: new Altair$2(),
7101
7149
  Amplitude: new Amplitude$2(),
@@ -7342,6 +7390,7 @@ var Litentry$1 = "100000000000";
7342
7390
  var Moonbeam$1 = "0";
7343
7391
  var Parallel$1 = "100000000000";
7344
7392
  var AssetHubKusama$1 = "33333333";
7393
+ var CoretimeKusama$1 = "3333333";
7345
7394
  var Encointer$1 = "33333333";
7346
7395
  var Altair$1 = "1000000000000";
7347
7396
  var Amplitude$1 = "1000000000";
@@ -7393,6 +7442,7 @@ var existentialDeposits = {
7393
7442
  Moonbeam: Moonbeam$1,
7394
7443
  Parallel: Parallel$1,
7395
7444
  AssetHubKusama: AssetHubKusama$1,
7445
+ CoretimeKusama: CoretimeKusama$1,
7396
7446
  Encointer: Encointer$1,
7397
7447
  Altair: Altair$1,
7398
7448
  Amplitude: Amplitude$1,
@@ -7448,6 +7498,7 @@ var edMapJson = /*#__PURE__*/Object.freeze({
7448
7498
  Calamari: Calamari$1,
7449
7499
  Centrifuge: Centrifuge$1,
7450
7500
  ComposableFinance: ComposableFinance$1,
7501
+ CoretimeKusama: CoretimeKusama$1,
7451
7502
  Crab: Crab$1,
7452
7503
  Crust: Crust$1,
7453
7504
  CrustShadow: CrustShadow$1,
@@ -8584,6 +8635,12 @@ var Bitgreen = {
8584
8635
  "PolkadotXcm"
8585
8636
  ]
8586
8637
  };
8638
+ var CoretimeKusama = {
8639
+ defaultPallet: "PolkadotXcm",
8640
+ supportedPallets: [
8641
+ "PolkadotXcm"
8642
+ ]
8643
+ };
8587
8644
  var Centrifuge = {
8588
8645
  defaultPallet: "XTokens",
8589
8646
  supportedPallets: [
@@ -8911,6 +8968,7 @@ var pallets = {
8911
8968
  Astar: Astar,
8912
8969
  BifrostPolkadot: BifrostPolkadot,
8913
8970
  Bitgreen: Bitgreen,
8971
+ CoretimeKusama: CoretimeKusama,
8914
8972
  Centrifuge: Centrifuge,
8915
8973
  Clover: Clover,
8916
8974
  ComposableFinance: ComposableFinance,
@@ -8978,6 +9036,7 @@ var palletsMapJson = /*#__PURE__*/Object.freeze({
8978
9036
  Clover: Clover,
8979
9037
  Collectives: Collectives,
8980
9038
  ComposableFinance: ComposableFinance,
9039
+ CoretimeKusama: CoretimeKusama,
8981
9040
  Crab: Crab,
8982
9041
  Crust: Crust,
8983
9042
  CrustShadow: CrustShadow,
package/package.json CHANGED
@@ -1,10 +1,9 @@
1
1
  {
2
2
  "name": "@paraspell/sdk",
3
- "version": "4.0.1",
3
+ "version": "4.1.0",
4
4
  "description": "SDK for ParaSpell XCM/XCMP tool for developers",
5
5
  "repository": "@paraspell/sdk",
6
6
  "license": "MIT",
7
- "sideEffects": false,
8
7
  "type": "module",
9
8
  "exports": {
10
9
  ".": {
@@ -13,9 +12,9 @@
13
12
  "types": "./dist/index.d.ts"
14
13
  }
15
14
  },
16
- "main": "./dist/index.cjs",
17
- "module": "./dist/index.mjs",
18
- "types": "./dist/index.d.ts",
15
+ "main": "dist/index.cjs",
16
+ "module": "dist/index.mjs",
17
+ "types": "dist/index.d.ts",
19
18
  "files": [
20
19
  "dist"
21
20
  ],
@@ -24,10 +23,10 @@
24
23
  "ethers": "^5.7.1"
25
24
  },
26
25
  "peerDependencies": {
27
- "@polkadot/api": "^10.6.1",
28
- "@polkadot/api-base": "^10.6.1",
26
+ "@polkadot/api": "^10.11.1",
27
+ "@polkadot/api-base": "^10.11.1",
29
28
  "@polkadot/apps-config": "^0.133.1",
30
- "@polkadot/types": "^10.6.1",
29
+ "@polkadot/types": "^10.11.1",
31
30
  "@polkadot/util": "^12.6.1"
32
31
  },
33
32
  "devDependencies": {
@@ -55,7 +54,7 @@
55
54
  "typescript": "^5.2.2",
56
55
  "vitest": "^1.1.3"
57
56
  },
58
- "packageManager": "pnpm@7.9.5",
57
+ "packageManager": "pnpm@8.5.1",
59
58
  "scripts": {
60
59
  "compile": "tsc --noEmit",
61
60
  "build": "rollup -c",
@@ -63,7 +62,8 @@
63
62
  "lint": "eslint --fix src --ext .ts",
64
63
  "format:check": "prettier --check src",
65
64
  "format:write": "prettier --write src",
66
- "test": "vitest",
65
+ "test": "vitest run",
66
+ "test:watch": "vitest",
67
67
  "updateAssets": "node --loader ts-node/esm --experimental-specifier-resolution=node ./scripts/updateAssets.ts",
68
68
  "updatePallets": "node --loader ts-node/esm --experimental-specifier-resolution=node ./scripts/updatePallets.ts",
69
69
  "updateEds": "node --loader ts-node/esm --experimental-specifier-resolution=node ./scripts/updateExistentialDeposits.ts",