@iota/isc-sdk 0.0.0-dev-20251015065834
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/.prettierignore +2 -0
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +81 -0
- package/LICENSE +201 -0
- package/README.md +88 -0
- package/dist/cjs/api/EvmRpcClient.d.ts +7 -0
- package/dist/cjs/api/EvmRpcClient.js +57 -0
- package/dist/cjs/api/EvmRpcClient.js.map +7 -0
- package/dist/cjs/api/index.d.ts +1 -0
- package/dist/cjs/api/index.js +19 -0
- package/dist/cjs/api/index.js.map +7 -0
- package/dist/cjs/bcs.d.ts +944 -0
- package/dist/cjs/bcs.js +260 -0
- package/dist/cjs/bcs.js.map +7 -0
- package/dist/cjs/constants.d.ts +2 -0
- package/dist/cjs/constants.js +27 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/enums/contracts.enums.d.ts +76 -0
- package/dist/cjs/enums/contracts.enums.js +113 -0
- package/dist/cjs/enums/contracts.enums.js.map +7 -0
- package/dist/cjs/enums/index.d.ts +1 -0
- package/dist/cjs/enums/index.js +19 -0
- package/dist/cjs/enums/index.js.map +7 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +27 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/isc.d.ts +26 -0
- package/dist/cjs/isc.js +220 -0
- package/dist/cjs/isc.js.map +7 -0
- package/dist/cjs/move_bcs.d.ts +124 -0
- package/dist/cjs/move_bcs.js +70 -0
- package/dist/cjs/move_bcs.js.map +7 -0
- package/dist/cjs/package.json +4 -0
- package/dist/cjs/transaction.d.ts +168 -0
- package/dist/cjs/transaction.js +328 -0
- package/dist/cjs/transaction.js.map +7 -0
- package/dist/cjs/types/assetsResponse.d.ts +37 -0
- package/dist/cjs/types/assetsResponse.js +34 -0
- package/dist/cjs/types/assetsResponse.js.map +7 -0
- package/dist/cjs/types/chainData.d.ts +12 -0
- package/dist/cjs/types/chainData.js +29 -0
- package/dist/cjs/types/chainData.js.map +7 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/index.js +20 -0
- package/dist/cjs/types/index.js.map +7 -0
- package/dist/cjs/utils/getHname.d.ts +1 -0
- package/dist/cjs/utils/getHname.js +30 -0
- package/dist/cjs/utils/getHname.js.map +7 -0
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.js +19 -0
- package/dist/cjs/utils/index.js.map +7 -0
- package/dist/cjs/vite-env.d.js +2 -0
- package/dist/cjs/vite-env.d.js.map +7 -0
- package/dist/esm/api/EvmRpcClient.d.ts +7 -0
- package/dist/esm/api/EvmRpcClient.js +37 -0
- package/dist/esm/api/EvmRpcClient.js.map +7 -0
- package/dist/esm/api/index.d.ts +1 -0
- package/dist/esm/api/index.js +2 -0
- package/dist/esm/api/index.js.map +7 -0
- package/dist/esm/bcs.d.ts +944 -0
- package/dist/esm/bcs.js +240 -0
- package/dist/esm/bcs.js.map +7 -0
- package/dist/esm/constants.d.ts +2 -0
- package/dist/esm/constants.js +7 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/enums/contracts.enums.d.ts +76 -0
- package/dist/esm/enums/contracts.enums.js +93 -0
- package/dist/esm/enums/contracts.enums.js.map +7 -0
- package/dist/esm/enums/index.d.ts +1 -0
- package/dist/esm/enums/index.js +2 -0
- package/dist/esm/enums/index.js.map +7 -0
- package/dist/esm/index.d.ts +9 -0
- package/dist/esm/index.js +10 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/isc.d.ts +26 -0
- package/dist/esm/isc.js +200 -0
- package/dist/esm/isc.js.map +7 -0
- package/dist/esm/move_bcs.d.ts +124 -0
- package/dist/esm/move_bcs.js +50 -0
- package/dist/esm/move_bcs.js.map +7 -0
- package/dist/esm/package.json +4 -0
- package/dist/esm/transaction.d.ts +168 -0
- package/dist/esm/transaction.js +298 -0
- package/dist/esm/transaction.js.map +7 -0
- package/dist/esm/types/assetsResponse.d.ts +37 -0
- package/dist/esm/types/assetsResponse.js +14 -0
- package/dist/esm/types/assetsResponse.js.map +7 -0
- package/dist/esm/types/chainData.d.ts +12 -0
- package/dist/esm/types/chainData.js +9 -0
- package/dist/esm/types/chainData.js.map +7 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/index.js +3 -0
- package/dist/esm/types/index.js.map +7 -0
- package/dist/esm/utils/getHname.d.ts +1 -0
- package/dist/esm/utils/getHname.js +10 -0
- package/dist/esm/utils/getHname.js.map +7 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.js +2 -0
- package/dist/esm/utils/index.js.map +7 -0
- package/dist/esm/vite-env.d.js +10 -0
- package/dist/esm/vite-env.d.js.map +7 -0
- package/dist/tsconfig.esm.tsbuildinfo +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/examples/L1AddressL2funds.ts +72 -0
- package/examples/anchor.ts +72 -0
- package/examples/assetsBag.ts +61 -0
- package/examples/config.ts +81 -0
- package/examples/tokens.ts +96 -0
- package/package.json +57 -0
- package/src/api/EvmRpcClient.ts +48 -0
- package/src/api/index.ts +1 -0
- package/src/bcs.ts +237 -0
- package/src/constants.ts +4 -0
- package/src/enums/contracts.enums.ts +82 -0
- package/src/enums/index.ts +1 -0
- package/src/index.ts +9 -0
- package/src/isc.ts +331 -0
- package/src/move_bcs.ts +47 -0
- package/src/transaction.ts +380 -0
- package/src/types/assetsResponse.ts +13 -0
- package/src/types/chainData.ts +8 -0
- package/src/types/index.ts +2 -0
- package/src/utils/getHname.ts +11 -0
- package/src/utils/index.ts +1 -0
- package/src/vite-env.d.ts +1 -0
- package/tests/L1ToL2Tokens.spec.ts +141 -0
- package/tests/config.ts +81 -0
- package/tests/getHname.spec.ts +78 -0
- package/tests/utils.ts +69 -0
- package/tsconfig.esm.json +7 -0
- package/tsconfig.json +11 -0
- package/vitest.config.ts +10 -0
package/src/isc.ts
ADDED
|
@@ -0,0 +1,331 @@
|
|
|
1
|
+
import type { Transaction, TransactionObjectArgument } from '@iota/iota-sdk/transactions';
|
|
2
|
+
import type { ChainData } from './types/index.js';
|
|
3
|
+
import { bcs } from '@iota/iota-sdk/bcs';
|
|
4
|
+
import { IscAgentID, IscAssets } from './bcs.js';
|
|
5
|
+
|
|
6
|
+
export type ObjectArgument = string | TransactionObjectArgument;
|
|
7
|
+
|
|
8
|
+
export function newBag(tx: Transaction, { packageId }: ChainData): TransactionObjectArgument {
|
|
9
|
+
// Create a new empty AssetsBag. It will be used to attach coin/objects to the request
|
|
10
|
+
const assetsBag = tx.moveCall({
|
|
11
|
+
target: `${packageId}::assets_bag::new`,
|
|
12
|
+
arguments: [],
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
return assetsBag;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export function coinFromAmount(tx: Transaction, amount: bigint): TransactionObjectArgument {
|
|
19
|
+
// Split the senders Gas coin so we have a coin to transfer
|
|
20
|
+
const [splitCoin] = tx.splitCoins(tx.gas, [tx.pure(bcs.U64.serialize(amount))]);
|
|
21
|
+
|
|
22
|
+
return splitCoin;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export function placeCoinInBag(
|
|
26
|
+
tx: Transaction,
|
|
27
|
+
{ packageId }: ChainData,
|
|
28
|
+
assetsBag: ObjectArgument,
|
|
29
|
+
coinType: string,
|
|
30
|
+
coin: ObjectArgument,
|
|
31
|
+
) {
|
|
32
|
+
tx.moveCall({
|
|
33
|
+
target: `${packageId}::assets_bag::place_coin`,
|
|
34
|
+
typeArguments: [coinType],
|
|
35
|
+
arguments: [tx.object(assetsBag), tx.object(coin)],
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function agentIdForEVM(address: string): Uint8Array {
|
|
40
|
+
const agentID = IscAgentID.serialize({
|
|
41
|
+
EthereumAddressAgentID: {
|
|
42
|
+
eth: bcs.fixedArray(20, bcs.u8()).fromHex(address),
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
return agentID.toBytes();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function createAndSendRequest(
|
|
50
|
+
tx: Transaction,
|
|
51
|
+
{ packageId, chainId }: ChainData,
|
|
52
|
+
contract: number,
|
|
53
|
+
contractFunction: number,
|
|
54
|
+
contractArgs: Uint8Array[],
|
|
55
|
+
assetsBag: ObjectArgument,
|
|
56
|
+
transfers: Array<[string, number | bigint]>,
|
|
57
|
+
gasBudget: number | bigint,
|
|
58
|
+
) {
|
|
59
|
+
// Encodes the allowance.
|
|
60
|
+
// coins: map[coinType(string): balance(u64)]
|
|
61
|
+
// objects: map[objectID(bytes32): objectType(string)]
|
|
62
|
+
//
|
|
63
|
+
// Example:
|
|
64
|
+
// {
|
|
65
|
+
// coins: {
|
|
66
|
+
// "0x02::iota::IOTA": 1074
|
|
67
|
+
// },
|
|
68
|
+
// objects: {
|
|
69
|
+
// fromHex('0x629aeef09ab0874db9b9d9dbf8098ef9e1d4f466ca7569c4ad18d1db4b0e9e7b'): "0xca99629453167d3c4d754ac11d23132a510094addb344cbaea306483a72658c2::anchor::Anchor"
|
|
70
|
+
// }
|
|
71
|
+
// }
|
|
72
|
+
const allowance = IscAssets.serialize({
|
|
73
|
+
coins: new Map(transfers.map(([coinType, amount]) => [coinType, Number(amount)])),
|
|
74
|
+
objects: new Map(), // Add objects here. Provide their ID as BCS encoded bytes *and* the _object type_ as string.
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// Execute requests::create_and_send_request.
|
|
78
|
+
// This creates the Request Move object and sends it to the Anchor object of the Chain (ChainID == Anchor Object ID)
|
|
79
|
+
tx.moveCall({
|
|
80
|
+
target: `${packageId}::request::create_and_send_request`,
|
|
81
|
+
arguments: [
|
|
82
|
+
tx.pure(bcs.Address.serialize(chainId)),
|
|
83
|
+
tx.object(assetsBag),
|
|
84
|
+
tx.pure(bcs.U32.serialize(contract)),
|
|
85
|
+
tx.pure(bcs.U32.serialize(contractFunction)),
|
|
86
|
+
tx.pure(bcs.vector(bcs.vector(bcs.u8())).serialize(contractArgs)),
|
|
87
|
+
tx.pure(bcs.vector(bcs.u8()).serialize(allowance.toBytes())),
|
|
88
|
+
tx.pure(bcs.U64.serialize(gasBudget)),
|
|
89
|
+
],
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function takeCoinBalanceFromBag(
|
|
94
|
+
tx: Transaction,
|
|
95
|
+
{ packageId }: ChainData,
|
|
96
|
+
assetsBag: ObjectArgument,
|
|
97
|
+
coinType: string,
|
|
98
|
+
amount: number | bigint,
|
|
99
|
+
): TransactionObjectArgument {
|
|
100
|
+
return tx.moveCall({
|
|
101
|
+
target: `${packageId}::assets_bag::take_coin_balance`,
|
|
102
|
+
typeArguments: [coinType],
|
|
103
|
+
arguments: [tx.object(assetsBag), tx.pure(bcs.U64.serialize(amount))],
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export function takeAllCoinBalanceFromBag(
|
|
108
|
+
tx: Transaction,
|
|
109
|
+
{ packageId }: ChainData,
|
|
110
|
+
assetsBag: ObjectArgument,
|
|
111
|
+
coinType: string,
|
|
112
|
+
): TransactionObjectArgument {
|
|
113
|
+
return tx.moveCall({
|
|
114
|
+
target: `${packageId}::assets_bag::take_all_coin_balance`,
|
|
115
|
+
typeArguments: [coinType],
|
|
116
|
+
arguments: [tx.object(assetsBag)],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export function placeCoinBalanceInBag(
|
|
121
|
+
tx: Transaction,
|
|
122
|
+
{ packageId }: ChainData,
|
|
123
|
+
assetsBag: ObjectArgument,
|
|
124
|
+
coinType: string,
|
|
125
|
+
balance: ObjectArgument,
|
|
126
|
+
) {
|
|
127
|
+
tx.moveCall({
|
|
128
|
+
target: `${packageId}::assets_bag::place_coin_balance`,
|
|
129
|
+
typeArguments: [coinType],
|
|
130
|
+
arguments: [tx.object(assetsBag), tx.object(balance)],
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export function placeAssetInBag(
|
|
135
|
+
tx: Transaction,
|
|
136
|
+
{ packageId }: ChainData,
|
|
137
|
+
assetsBag: ObjectArgument,
|
|
138
|
+
assetType: string,
|
|
139
|
+
asset: ObjectArgument,
|
|
140
|
+
) {
|
|
141
|
+
tx.moveCall({
|
|
142
|
+
target: `${packageId}::assets_bag::place_asset`,
|
|
143
|
+
typeArguments: [assetType],
|
|
144
|
+
arguments: [tx.object(assetsBag), tx.object(asset)],
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export function takeAssetFromBag(
|
|
149
|
+
tx: Transaction,
|
|
150
|
+
{ packageId }: ChainData,
|
|
151
|
+
assetsBag: ObjectArgument,
|
|
152
|
+
assetType: string,
|
|
153
|
+
asset: ObjectArgument,
|
|
154
|
+
) {
|
|
155
|
+
return tx.moveCall({
|
|
156
|
+
target: `${packageId}::assets_bag::take_asset`,
|
|
157
|
+
typeArguments: [assetType],
|
|
158
|
+
arguments: [tx.object(assetsBag), tx.object(asset)],
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export function getSizeOfBag(
|
|
163
|
+
tx: Transaction,
|
|
164
|
+
{ packageId }: ChainData,
|
|
165
|
+
assetsBag: ObjectArgument,
|
|
166
|
+
): TransactionObjectArgument {
|
|
167
|
+
return tx.moveCall({
|
|
168
|
+
target: `${packageId}::assets_bag::get_size`,
|
|
169
|
+
arguments: [tx.object(assetsBag)],
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export function destroyBag(
|
|
174
|
+
tx: Transaction,
|
|
175
|
+
{ packageId }: ChainData,
|
|
176
|
+
assetsBag: ObjectArgument,
|
|
177
|
+
): TransactionObjectArgument {
|
|
178
|
+
return tx.moveCall({
|
|
179
|
+
target: `${packageId}::assets_bag::destroy_empty`,
|
|
180
|
+
arguments: [tx.object(assetsBag)],
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export function startNewChain(
|
|
185
|
+
tx: Transaction,
|
|
186
|
+
{ packageId }: ChainData,
|
|
187
|
+
metadata: Uint8Array,
|
|
188
|
+
coin?: ObjectArgument,
|
|
189
|
+
): TransactionObjectArgument {
|
|
190
|
+
return tx.moveCall({
|
|
191
|
+
target: `${packageId}::anchor::start_new_chain`,
|
|
192
|
+
arguments: [
|
|
193
|
+
bcs.vector(bcs.u8()).serialize(metadata),
|
|
194
|
+
coin ? tx.object(coin) : bcs.option(bcs.ObjectArg).serialize(null),
|
|
195
|
+
],
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
export function createAnchorWithAssetBag(
|
|
200
|
+
tx: Transaction,
|
|
201
|
+
{ packageId }: ChainData,
|
|
202
|
+
assetsBag: ObjectArgument,
|
|
203
|
+
): TransactionObjectArgument {
|
|
204
|
+
return tx.moveCall({
|
|
205
|
+
target: `${packageId}::anchor::create_anchor_with_assets_bag_ref`,
|
|
206
|
+
arguments: [tx.object(assetsBag)],
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
export function updateAnchorStateForMigraton(
|
|
211
|
+
tx: Transaction,
|
|
212
|
+
{ packageId }: ChainData,
|
|
213
|
+
anchor: ObjectArgument,
|
|
214
|
+
metadata: Uint8Array,
|
|
215
|
+
stateIndex: number,
|
|
216
|
+
): TransactionObjectArgument {
|
|
217
|
+
return tx.moveCall({
|
|
218
|
+
target: `${packageId}::anchor::update_anchor_state_for_migration`,
|
|
219
|
+
arguments: [
|
|
220
|
+
tx.object(anchor),
|
|
221
|
+
bcs.vector(bcs.u8()).serialize(metadata),
|
|
222
|
+
bcs.u32().serialize(stateIndex),
|
|
223
|
+
],
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export function destroyAnchor(
|
|
228
|
+
tx: Transaction,
|
|
229
|
+
{ packageId }: ChainData,
|
|
230
|
+
anchor: ObjectArgument,
|
|
231
|
+
): TransactionObjectArgument {
|
|
232
|
+
return tx.moveCall({
|
|
233
|
+
target: `${packageId}::anchor::destroy`,
|
|
234
|
+
arguments: [tx.object(anchor)],
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export function borrowAssets(
|
|
239
|
+
tx: Transaction,
|
|
240
|
+
{ packageId }: ChainData,
|
|
241
|
+
anchor: ObjectArgument,
|
|
242
|
+
): TransactionObjectArgument {
|
|
243
|
+
return tx.moveCall({
|
|
244
|
+
target: `${packageId}::anchor::borrow_assets`,
|
|
245
|
+
arguments: [tx.object(anchor)],
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
export function returnAssetsFromBorrow(
|
|
250
|
+
tx: Transaction,
|
|
251
|
+
{ packageId }: ChainData,
|
|
252
|
+
anchor: ObjectArgument,
|
|
253
|
+
assetsBag: ObjectArgument,
|
|
254
|
+
borrow: ObjectArgument,
|
|
255
|
+
): TransactionObjectArgument {
|
|
256
|
+
return tx.moveCall({
|
|
257
|
+
target: `${packageId}::anchor::return_assets_from_borrow`,
|
|
258
|
+
arguments: [tx.object(anchor), tx.object(assetsBag), tx.object(borrow)],
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
export function receiveRequest(
|
|
263
|
+
tx: Transaction,
|
|
264
|
+
{ packageId }: ChainData,
|
|
265
|
+
anchor: ObjectArgument,
|
|
266
|
+
request: ObjectArgument,
|
|
267
|
+
): TransactionObjectArgument {
|
|
268
|
+
return tx.moveCall({
|
|
269
|
+
target: `${packageId}::anchor::receive_request`,
|
|
270
|
+
arguments: [tx.object(anchor), tx.object(request)],
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
export function transition(
|
|
275
|
+
tx: Transaction,
|
|
276
|
+
{ packageId }: ChainData,
|
|
277
|
+
anchor: ObjectArgument,
|
|
278
|
+
newStateMetadata: Uint8Array,
|
|
279
|
+
receipts: ObjectArgument,
|
|
280
|
+
): TransactionObjectArgument {
|
|
281
|
+
return tx.moveCall({
|
|
282
|
+
target: `${packageId}::anchor::transition`,
|
|
283
|
+
arguments: [
|
|
284
|
+
tx.object(anchor),
|
|
285
|
+
bcs.vector(bcs.u8()).serialize(newStateMetadata),
|
|
286
|
+
tx.object(receipts),
|
|
287
|
+
],
|
|
288
|
+
});
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
export function placeCoinForMigration(
|
|
292
|
+
tx: Transaction,
|
|
293
|
+
{ packageId }: ChainData,
|
|
294
|
+
anchor: ObjectArgument,
|
|
295
|
+
coinType: string,
|
|
296
|
+
coin: ObjectArgument,
|
|
297
|
+
): TransactionObjectArgument {
|
|
298
|
+
return tx.moveCall({
|
|
299
|
+
target: `${packageId}::anchor::place_coin_for_migration`,
|
|
300
|
+
typeArguments: [coinType],
|
|
301
|
+
arguments: [tx.object(anchor), tx.object(coin)],
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
export function placeCoinBalanceForMigration(
|
|
306
|
+
tx: Transaction,
|
|
307
|
+
{ packageId }: ChainData,
|
|
308
|
+
anchor: ObjectArgument,
|
|
309
|
+
coinType: string,
|
|
310
|
+
balance: ObjectArgument,
|
|
311
|
+
): TransactionObjectArgument {
|
|
312
|
+
return tx.moveCall({
|
|
313
|
+
target: `${packageId}::anchor::place_coin_balance_for_migration`,
|
|
314
|
+
typeArguments: [coinType],
|
|
315
|
+
arguments: [tx.object(anchor), tx.object(balance)],
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
export function placeAssetForMigration(
|
|
320
|
+
tx: Transaction,
|
|
321
|
+
{ packageId }: ChainData,
|
|
322
|
+
anchor: ObjectArgument,
|
|
323
|
+
assetType: string,
|
|
324
|
+
asset: ObjectArgument,
|
|
325
|
+
): TransactionObjectArgument {
|
|
326
|
+
return tx.moveCall({
|
|
327
|
+
target: `${packageId}::anchor::place_asset_for_migration`,
|
|
328
|
+
typeArguments: [assetType],
|
|
329
|
+
arguments: [tx.object(anchor), tx.object(asset)],
|
|
330
|
+
});
|
|
331
|
+
}
|
package/src/move_bcs.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { bcs } from '@iota/iota-sdk/bcs';
|
|
2
|
+
|
|
3
|
+
export const Receipt = bcs.struct('Receipt', {
|
|
4
|
+
RequestID: bcs.Address,
|
|
5
|
+
});
|
|
6
|
+
|
|
7
|
+
export const AssetsBag = bcs.struct('AssetsBag', {
|
|
8
|
+
ID: bcs.Address,
|
|
9
|
+
Size: bcs.u64(),
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
export const ReferentAssetsBag = bcs.struct('ReferentAssetsBag', {
|
|
13
|
+
ID: bcs.Address,
|
|
14
|
+
Value: bcs.option(AssetsBag),
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const Anchor = bcs.struct('Anchor', {
|
|
18
|
+
UID: bcs.Address,
|
|
19
|
+
Assets: ReferentAssetsBag,
|
|
20
|
+
StateMetadata: bcs.vector(bcs.u8()),
|
|
21
|
+
StateIndex: bcs.u32(),
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
export const Message = bcs.struct('Message', {
|
|
25
|
+
Contract: bcs.u32(),
|
|
26
|
+
Function: bcs.u32(),
|
|
27
|
+
Args: bcs.vector(bcs.vector(bcs.u8())),
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
export const CoinAllowance = bcs.struct('CoinAllowance', {
|
|
31
|
+
CoinType: bcs.string(),
|
|
32
|
+
Balance: bcs.u64(),
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
export const Request = bcs.struct('Request', {
|
|
36
|
+
UID: bcs.Address,
|
|
37
|
+
Sender: bcs.Address,
|
|
38
|
+
AssetsBag: ReferentAssetsBag,
|
|
39
|
+
Message: Message,
|
|
40
|
+
Allowance: bcs.vector(CoinAllowance),
|
|
41
|
+
GasBudget: bcs.u64(),
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
export const RequestEvent = bcs.struct('RequestEvent', {
|
|
45
|
+
RequestID: bcs.Address,
|
|
46
|
+
Anchor: bcs.Address,
|
|
47
|
+
});
|