@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.
Files changed (132) hide show
  1. package/.prettierignore +2 -0
  2. package/.turbo/turbo-build.log +4 -0
  3. package/CHANGELOG.md +81 -0
  4. package/LICENSE +201 -0
  5. package/README.md +88 -0
  6. package/dist/cjs/api/EvmRpcClient.d.ts +7 -0
  7. package/dist/cjs/api/EvmRpcClient.js +57 -0
  8. package/dist/cjs/api/EvmRpcClient.js.map +7 -0
  9. package/dist/cjs/api/index.d.ts +1 -0
  10. package/dist/cjs/api/index.js +19 -0
  11. package/dist/cjs/api/index.js.map +7 -0
  12. package/dist/cjs/bcs.d.ts +944 -0
  13. package/dist/cjs/bcs.js +260 -0
  14. package/dist/cjs/bcs.js.map +7 -0
  15. package/dist/cjs/constants.d.ts +2 -0
  16. package/dist/cjs/constants.js +27 -0
  17. package/dist/cjs/constants.js.map +7 -0
  18. package/dist/cjs/enums/contracts.enums.d.ts +76 -0
  19. package/dist/cjs/enums/contracts.enums.js +113 -0
  20. package/dist/cjs/enums/contracts.enums.js.map +7 -0
  21. package/dist/cjs/enums/index.d.ts +1 -0
  22. package/dist/cjs/enums/index.js +19 -0
  23. package/dist/cjs/enums/index.js.map +7 -0
  24. package/dist/cjs/index.d.ts +9 -0
  25. package/dist/cjs/index.js +27 -0
  26. package/dist/cjs/index.js.map +7 -0
  27. package/dist/cjs/isc.d.ts +26 -0
  28. package/dist/cjs/isc.js +220 -0
  29. package/dist/cjs/isc.js.map +7 -0
  30. package/dist/cjs/move_bcs.d.ts +124 -0
  31. package/dist/cjs/move_bcs.js +70 -0
  32. package/dist/cjs/move_bcs.js.map +7 -0
  33. package/dist/cjs/package.json +4 -0
  34. package/dist/cjs/transaction.d.ts +168 -0
  35. package/dist/cjs/transaction.js +328 -0
  36. package/dist/cjs/transaction.js.map +7 -0
  37. package/dist/cjs/types/assetsResponse.d.ts +37 -0
  38. package/dist/cjs/types/assetsResponse.js +34 -0
  39. package/dist/cjs/types/assetsResponse.js.map +7 -0
  40. package/dist/cjs/types/chainData.d.ts +12 -0
  41. package/dist/cjs/types/chainData.js +29 -0
  42. package/dist/cjs/types/chainData.js.map +7 -0
  43. package/dist/cjs/types/index.d.ts +2 -0
  44. package/dist/cjs/types/index.js +20 -0
  45. package/dist/cjs/types/index.js.map +7 -0
  46. package/dist/cjs/utils/getHname.d.ts +1 -0
  47. package/dist/cjs/utils/getHname.js +30 -0
  48. package/dist/cjs/utils/getHname.js.map +7 -0
  49. package/dist/cjs/utils/index.d.ts +1 -0
  50. package/dist/cjs/utils/index.js +19 -0
  51. package/dist/cjs/utils/index.js.map +7 -0
  52. package/dist/cjs/vite-env.d.js +2 -0
  53. package/dist/cjs/vite-env.d.js.map +7 -0
  54. package/dist/esm/api/EvmRpcClient.d.ts +7 -0
  55. package/dist/esm/api/EvmRpcClient.js +37 -0
  56. package/dist/esm/api/EvmRpcClient.js.map +7 -0
  57. package/dist/esm/api/index.d.ts +1 -0
  58. package/dist/esm/api/index.js +2 -0
  59. package/dist/esm/api/index.js.map +7 -0
  60. package/dist/esm/bcs.d.ts +944 -0
  61. package/dist/esm/bcs.js +240 -0
  62. package/dist/esm/bcs.js.map +7 -0
  63. package/dist/esm/constants.d.ts +2 -0
  64. package/dist/esm/constants.js +7 -0
  65. package/dist/esm/constants.js.map +7 -0
  66. package/dist/esm/enums/contracts.enums.d.ts +76 -0
  67. package/dist/esm/enums/contracts.enums.js +93 -0
  68. package/dist/esm/enums/contracts.enums.js.map +7 -0
  69. package/dist/esm/enums/index.d.ts +1 -0
  70. package/dist/esm/enums/index.js +2 -0
  71. package/dist/esm/enums/index.js.map +7 -0
  72. package/dist/esm/index.d.ts +9 -0
  73. package/dist/esm/index.js +10 -0
  74. package/dist/esm/index.js.map +7 -0
  75. package/dist/esm/isc.d.ts +26 -0
  76. package/dist/esm/isc.js +200 -0
  77. package/dist/esm/isc.js.map +7 -0
  78. package/dist/esm/move_bcs.d.ts +124 -0
  79. package/dist/esm/move_bcs.js +50 -0
  80. package/dist/esm/move_bcs.js.map +7 -0
  81. package/dist/esm/package.json +4 -0
  82. package/dist/esm/transaction.d.ts +168 -0
  83. package/dist/esm/transaction.js +298 -0
  84. package/dist/esm/transaction.js.map +7 -0
  85. package/dist/esm/types/assetsResponse.d.ts +37 -0
  86. package/dist/esm/types/assetsResponse.js +14 -0
  87. package/dist/esm/types/assetsResponse.js.map +7 -0
  88. package/dist/esm/types/chainData.d.ts +12 -0
  89. package/dist/esm/types/chainData.js +9 -0
  90. package/dist/esm/types/chainData.js.map +7 -0
  91. package/dist/esm/types/index.d.ts +2 -0
  92. package/dist/esm/types/index.js +3 -0
  93. package/dist/esm/types/index.js.map +7 -0
  94. package/dist/esm/utils/getHname.d.ts +1 -0
  95. package/dist/esm/utils/getHname.js +10 -0
  96. package/dist/esm/utils/getHname.js.map +7 -0
  97. package/dist/esm/utils/index.d.ts +1 -0
  98. package/dist/esm/utils/index.js +2 -0
  99. package/dist/esm/utils/index.js.map +7 -0
  100. package/dist/esm/vite-env.d.js +10 -0
  101. package/dist/esm/vite-env.d.js.map +7 -0
  102. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  103. package/dist/tsconfig.tsbuildinfo +1 -0
  104. package/examples/L1AddressL2funds.ts +72 -0
  105. package/examples/anchor.ts +72 -0
  106. package/examples/assetsBag.ts +61 -0
  107. package/examples/config.ts +81 -0
  108. package/examples/tokens.ts +96 -0
  109. package/package.json +57 -0
  110. package/src/api/EvmRpcClient.ts +48 -0
  111. package/src/api/index.ts +1 -0
  112. package/src/bcs.ts +237 -0
  113. package/src/constants.ts +4 -0
  114. package/src/enums/contracts.enums.ts +82 -0
  115. package/src/enums/index.ts +1 -0
  116. package/src/index.ts +9 -0
  117. package/src/isc.ts +331 -0
  118. package/src/move_bcs.ts +47 -0
  119. package/src/transaction.ts +380 -0
  120. package/src/types/assetsResponse.ts +13 -0
  121. package/src/types/chainData.ts +8 -0
  122. package/src/types/index.ts +2 -0
  123. package/src/utils/getHname.ts +11 -0
  124. package/src/utils/index.ts +1 -0
  125. package/src/vite-env.d.ts +1 -0
  126. package/tests/L1ToL2Tokens.spec.ts +141 -0
  127. package/tests/config.ts +81 -0
  128. package/tests/getHname.spec.ts +78 -0
  129. package/tests/utils.ts +69 -0
  130. package/tsconfig.esm.json +7 -0
  131. package/tsconfig.json +11 -0
  132. package/vitest.config.ts +10 -0
@@ -0,0 +1,26 @@
1
+ import type { Transaction, TransactionObjectArgument } from '@iota/iota-sdk/transactions';
2
+ import type { ChainData } from './types/index.js';
3
+ export type ObjectArgument = string | TransactionObjectArgument;
4
+ export declare function newBag(tx: Transaction, { packageId }: ChainData): TransactionObjectArgument;
5
+ export declare function coinFromAmount(tx: Transaction, amount: bigint): TransactionObjectArgument;
6
+ export declare function placeCoinInBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument, coinType: string, coin: ObjectArgument): void;
7
+ export declare function agentIdForEVM(address: string): Uint8Array;
8
+ export declare function createAndSendRequest(tx: Transaction, { packageId, chainId }: ChainData, contract: number, contractFunction: number, contractArgs: Uint8Array[], assetsBag: ObjectArgument, transfers: Array<[string, number | bigint]>, gasBudget: number | bigint): void;
9
+ export declare function takeCoinBalanceFromBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument, coinType: string, amount: number | bigint): TransactionObjectArgument;
10
+ export declare function takeAllCoinBalanceFromBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument, coinType: string): TransactionObjectArgument;
11
+ export declare function placeCoinBalanceInBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument, coinType: string, balance: ObjectArgument): void;
12
+ export declare function placeAssetInBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument, assetType: string, asset: ObjectArgument): void;
13
+ export declare function takeAssetFromBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument, assetType: string, asset: ObjectArgument): import("@iota/iota-sdk/transactions").TransactionResult;
14
+ export declare function getSizeOfBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument): TransactionObjectArgument;
15
+ export declare function destroyBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument): TransactionObjectArgument;
16
+ export declare function startNewChain(tx: Transaction, { packageId }: ChainData, metadata: Uint8Array, coin?: ObjectArgument): TransactionObjectArgument;
17
+ export declare function createAnchorWithAssetBag(tx: Transaction, { packageId }: ChainData, assetsBag: ObjectArgument): TransactionObjectArgument;
18
+ export declare function updateAnchorStateForMigraton(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, metadata: Uint8Array, stateIndex: number): TransactionObjectArgument;
19
+ export declare function destroyAnchor(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument): TransactionObjectArgument;
20
+ export declare function borrowAssets(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument): TransactionObjectArgument;
21
+ export declare function returnAssetsFromBorrow(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, assetsBag: ObjectArgument, borrow: ObjectArgument): TransactionObjectArgument;
22
+ export declare function receiveRequest(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, request: ObjectArgument): TransactionObjectArgument;
23
+ export declare function transition(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, newStateMetadata: Uint8Array, receipts: ObjectArgument): TransactionObjectArgument;
24
+ export declare function placeCoinForMigration(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, coinType: string, coin: ObjectArgument): TransactionObjectArgument;
25
+ export declare function placeCoinBalanceForMigration(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, coinType: string, balance: ObjectArgument): TransactionObjectArgument;
26
+ export declare function placeAssetForMigration(tx: Transaction, { packageId }: ChainData, anchor: ObjectArgument, assetType: string, asset: ObjectArgument): TransactionObjectArgument;
@@ -0,0 +1,220 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var isc_exports = {};
20
+ __export(isc_exports, {
21
+ agentIdForEVM: () => agentIdForEVM,
22
+ borrowAssets: () => borrowAssets,
23
+ coinFromAmount: () => coinFromAmount,
24
+ createAnchorWithAssetBag: () => createAnchorWithAssetBag,
25
+ createAndSendRequest: () => createAndSendRequest,
26
+ destroyAnchor: () => destroyAnchor,
27
+ destroyBag: () => destroyBag,
28
+ getSizeOfBag: () => getSizeOfBag,
29
+ newBag: () => newBag,
30
+ placeAssetForMigration: () => placeAssetForMigration,
31
+ placeAssetInBag: () => placeAssetInBag,
32
+ placeCoinBalanceForMigration: () => placeCoinBalanceForMigration,
33
+ placeCoinBalanceInBag: () => placeCoinBalanceInBag,
34
+ placeCoinForMigration: () => placeCoinForMigration,
35
+ placeCoinInBag: () => placeCoinInBag,
36
+ receiveRequest: () => receiveRequest,
37
+ returnAssetsFromBorrow: () => returnAssetsFromBorrow,
38
+ startNewChain: () => startNewChain,
39
+ takeAllCoinBalanceFromBag: () => takeAllCoinBalanceFromBag,
40
+ takeAssetFromBag: () => takeAssetFromBag,
41
+ takeCoinBalanceFromBag: () => takeCoinBalanceFromBag,
42
+ transition: () => transition,
43
+ updateAnchorStateForMigraton: () => updateAnchorStateForMigraton
44
+ });
45
+ module.exports = __toCommonJS(isc_exports);
46
+ var import_bcs = require("@iota/iota-sdk/bcs");
47
+ var import_bcs2 = require("./bcs.js");
48
+ function newBag(tx, { packageId }) {
49
+ const assetsBag = tx.moveCall({
50
+ target: `${packageId}::assets_bag::new`,
51
+ arguments: []
52
+ });
53
+ return assetsBag;
54
+ }
55
+ function coinFromAmount(tx, amount) {
56
+ const [splitCoin] = tx.splitCoins(tx.gas, [tx.pure(import_bcs.bcs.U64.serialize(amount))]);
57
+ return splitCoin;
58
+ }
59
+ function placeCoinInBag(tx, { packageId }, assetsBag, coinType, coin) {
60
+ tx.moveCall({
61
+ target: `${packageId}::assets_bag::place_coin`,
62
+ typeArguments: [coinType],
63
+ arguments: [tx.object(assetsBag), tx.object(coin)]
64
+ });
65
+ }
66
+ function agentIdForEVM(address) {
67
+ const agentID = import_bcs2.IscAgentID.serialize({
68
+ EthereumAddressAgentID: {
69
+ eth: import_bcs.bcs.fixedArray(20, import_bcs.bcs.u8()).fromHex(address)
70
+ }
71
+ });
72
+ return agentID.toBytes();
73
+ }
74
+ function createAndSendRequest(tx, { packageId, chainId }, contract, contractFunction, contractArgs, assetsBag, transfers, gasBudget) {
75
+ const allowance = import_bcs2.IscAssets.serialize({
76
+ coins: new Map(transfers.map(([coinType, amount]) => [coinType, Number(amount)])),
77
+ objects: /* @__PURE__ */ new Map()
78
+ // Add objects here. Provide their ID as BCS encoded bytes *and* the _object type_ as string.
79
+ });
80
+ tx.moveCall({
81
+ target: `${packageId}::request::create_and_send_request`,
82
+ arguments: [
83
+ tx.pure(import_bcs.bcs.Address.serialize(chainId)),
84
+ tx.object(assetsBag),
85
+ tx.pure(import_bcs.bcs.U32.serialize(contract)),
86
+ tx.pure(import_bcs.bcs.U32.serialize(contractFunction)),
87
+ tx.pure(import_bcs.bcs.vector(import_bcs.bcs.vector(import_bcs.bcs.u8())).serialize(contractArgs)),
88
+ tx.pure(import_bcs.bcs.vector(import_bcs.bcs.u8()).serialize(allowance.toBytes())),
89
+ tx.pure(import_bcs.bcs.U64.serialize(gasBudget))
90
+ ]
91
+ });
92
+ }
93
+ function takeCoinBalanceFromBag(tx, { packageId }, assetsBag, coinType, amount) {
94
+ return tx.moveCall({
95
+ target: `${packageId}::assets_bag::take_coin_balance`,
96
+ typeArguments: [coinType],
97
+ arguments: [tx.object(assetsBag), tx.pure(import_bcs.bcs.U64.serialize(amount))]
98
+ });
99
+ }
100
+ function takeAllCoinBalanceFromBag(tx, { packageId }, assetsBag, coinType) {
101
+ return tx.moveCall({
102
+ target: `${packageId}::assets_bag::take_all_coin_balance`,
103
+ typeArguments: [coinType],
104
+ arguments: [tx.object(assetsBag)]
105
+ });
106
+ }
107
+ function placeCoinBalanceInBag(tx, { packageId }, assetsBag, coinType, balance) {
108
+ tx.moveCall({
109
+ target: `${packageId}::assets_bag::place_coin_balance`,
110
+ typeArguments: [coinType],
111
+ arguments: [tx.object(assetsBag), tx.object(balance)]
112
+ });
113
+ }
114
+ function placeAssetInBag(tx, { packageId }, assetsBag, assetType, asset) {
115
+ tx.moveCall({
116
+ target: `${packageId}::assets_bag::place_asset`,
117
+ typeArguments: [assetType],
118
+ arguments: [tx.object(assetsBag), tx.object(asset)]
119
+ });
120
+ }
121
+ function takeAssetFromBag(tx, { packageId }, assetsBag, assetType, asset) {
122
+ return tx.moveCall({
123
+ target: `${packageId}::assets_bag::take_asset`,
124
+ typeArguments: [assetType],
125
+ arguments: [tx.object(assetsBag), tx.object(asset)]
126
+ });
127
+ }
128
+ function getSizeOfBag(tx, { packageId }, assetsBag) {
129
+ return tx.moveCall({
130
+ target: `${packageId}::assets_bag::get_size`,
131
+ arguments: [tx.object(assetsBag)]
132
+ });
133
+ }
134
+ function destroyBag(tx, { packageId }, assetsBag) {
135
+ return tx.moveCall({
136
+ target: `${packageId}::assets_bag::destroy_empty`,
137
+ arguments: [tx.object(assetsBag)]
138
+ });
139
+ }
140
+ function startNewChain(tx, { packageId }, metadata, coin) {
141
+ return tx.moveCall({
142
+ target: `${packageId}::anchor::start_new_chain`,
143
+ arguments: [
144
+ import_bcs.bcs.vector(import_bcs.bcs.u8()).serialize(metadata),
145
+ coin ? tx.object(coin) : import_bcs.bcs.option(import_bcs.bcs.ObjectArg).serialize(null)
146
+ ]
147
+ });
148
+ }
149
+ function createAnchorWithAssetBag(tx, { packageId }, assetsBag) {
150
+ return tx.moveCall({
151
+ target: `${packageId}::anchor::create_anchor_with_assets_bag_ref`,
152
+ arguments: [tx.object(assetsBag)]
153
+ });
154
+ }
155
+ function updateAnchorStateForMigraton(tx, { packageId }, anchor, metadata, stateIndex) {
156
+ return tx.moveCall({
157
+ target: `${packageId}::anchor::update_anchor_state_for_migration`,
158
+ arguments: [
159
+ tx.object(anchor),
160
+ import_bcs.bcs.vector(import_bcs.bcs.u8()).serialize(metadata),
161
+ import_bcs.bcs.u32().serialize(stateIndex)
162
+ ]
163
+ });
164
+ }
165
+ function destroyAnchor(tx, { packageId }, anchor) {
166
+ return tx.moveCall({
167
+ target: `${packageId}::anchor::destroy`,
168
+ arguments: [tx.object(anchor)]
169
+ });
170
+ }
171
+ function borrowAssets(tx, { packageId }, anchor) {
172
+ return tx.moveCall({
173
+ target: `${packageId}::anchor::borrow_assets`,
174
+ arguments: [tx.object(anchor)]
175
+ });
176
+ }
177
+ function returnAssetsFromBorrow(tx, { packageId }, anchor, assetsBag, borrow) {
178
+ return tx.moveCall({
179
+ target: `${packageId}::anchor::return_assets_from_borrow`,
180
+ arguments: [tx.object(anchor), tx.object(assetsBag), tx.object(borrow)]
181
+ });
182
+ }
183
+ function receiveRequest(tx, { packageId }, anchor, request) {
184
+ return tx.moveCall({
185
+ target: `${packageId}::anchor::receive_request`,
186
+ arguments: [tx.object(anchor), tx.object(request)]
187
+ });
188
+ }
189
+ function transition(tx, { packageId }, anchor, newStateMetadata, receipts) {
190
+ return tx.moveCall({
191
+ target: `${packageId}::anchor::transition`,
192
+ arguments: [
193
+ tx.object(anchor),
194
+ import_bcs.bcs.vector(import_bcs.bcs.u8()).serialize(newStateMetadata),
195
+ tx.object(receipts)
196
+ ]
197
+ });
198
+ }
199
+ function placeCoinForMigration(tx, { packageId }, anchor, coinType, coin) {
200
+ return tx.moveCall({
201
+ target: `${packageId}::anchor::place_coin_for_migration`,
202
+ typeArguments: [coinType],
203
+ arguments: [tx.object(anchor), tx.object(coin)]
204
+ });
205
+ }
206
+ function placeCoinBalanceForMigration(tx, { packageId }, anchor, coinType, balance) {
207
+ return tx.moveCall({
208
+ target: `${packageId}::anchor::place_coin_balance_for_migration`,
209
+ typeArguments: [coinType],
210
+ arguments: [tx.object(anchor), tx.object(balance)]
211
+ });
212
+ }
213
+ function placeAssetForMigration(tx, { packageId }, anchor, assetType, asset) {
214
+ return tx.moveCall({
215
+ target: `${packageId}::anchor::place_asset_for_migration`,
216
+ typeArguments: [assetType],
217
+ arguments: [tx.object(anchor), tx.object(asset)]
218
+ });
219
+ }
220
+ //# sourceMappingURL=isc.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/isc.ts"],
4
+ "sourcesContent": ["import type { Transaction, TransactionObjectArgument } from '@iota/iota-sdk/transactions';\nimport type { ChainData } from './types/index.js';\nimport { bcs } from '@iota/iota-sdk/bcs';\nimport { IscAgentID, IscAssets } from './bcs.js';\n\nexport type ObjectArgument = string | TransactionObjectArgument;\n\nexport function newBag(tx: Transaction, { packageId }: ChainData): TransactionObjectArgument {\n // Create a new empty AssetsBag. It will be used to attach coin/objects to the request\n const assetsBag = tx.moveCall({\n target: `${packageId}::assets_bag::new`,\n arguments: [],\n });\n\n return assetsBag;\n}\n\nexport function coinFromAmount(tx: Transaction, amount: bigint): TransactionObjectArgument {\n // Split the senders Gas coin so we have a coin to transfer\n const [splitCoin] = tx.splitCoins(tx.gas, [tx.pure(bcs.U64.serialize(amount))]);\n\n return splitCoin;\n}\n\nexport function placeCoinInBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n coinType: string,\n coin: ObjectArgument,\n) {\n tx.moveCall({\n target: `${packageId}::assets_bag::place_coin`,\n typeArguments: [coinType],\n arguments: [tx.object(assetsBag), tx.object(coin)],\n });\n}\n\nexport function agentIdForEVM(address: string): Uint8Array {\n const agentID = IscAgentID.serialize({\n EthereumAddressAgentID: {\n eth: bcs.fixedArray(20, bcs.u8()).fromHex(address),\n },\n });\n\n return agentID.toBytes();\n}\n\nexport function createAndSendRequest(\n tx: Transaction,\n { packageId, chainId }: ChainData,\n contract: number,\n contractFunction: number,\n contractArgs: Uint8Array[],\n assetsBag: ObjectArgument,\n transfers: Array<[string, number | bigint]>,\n gasBudget: number | bigint,\n) {\n // Encodes the allowance.\n // coins: map[coinType(string): balance(u64)]\n // objects: map[objectID(bytes32): objectType(string)]\n //\n // Example:\n // {\n // coins: {\n // \"0x02::iota::IOTA\": 1074\n // },\n // objects: {\n // fromHex('0x629aeef09ab0874db9b9d9dbf8098ef9e1d4f466ca7569c4ad18d1db4b0e9e7b'): \"0xca99629453167d3c4d754ac11d23132a510094addb344cbaea306483a72658c2::anchor::Anchor\"\n // }\n // }\n const allowance = IscAssets.serialize({\n coins: new Map(transfers.map(([coinType, amount]) => [coinType, Number(amount)])),\n objects: new Map(), // Add objects here. Provide their ID as BCS encoded bytes *and* the _object type_ as string.\n });\n\n // Execute requests::create_and_send_request.\n // This creates the Request Move object and sends it to the Anchor object of the Chain (ChainID == Anchor Object ID)\n tx.moveCall({\n target: `${packageId}::request::create_and_send_request`,\n arguments: [\n tx.pure(bcs.Address.serialize(chainId)),\n tx.object(assetsBag),\n tx.pure(bcs.U32.serialize(contract)),\n tx.pure(bcs.U32.serialize(contractFunction)),\n tx.pure(bcs.vector(bcs.vector(bcs.u8())).serialize(contractArgs)),\n tx.pure(bcs.vector(bcs.u8()).serialize(allowance.toBytes())),\n tx.pure(bcs.U64.serialize(gasBudget)),\n ],\n });\n}\n\nexport function takeCoinBalanceFromBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n coinType: string,\n amount: number | bigint,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::assets_bag::take_coin_balance`,\n typeArguments: [coinType],\n arguments: [tx.object(assetsBag), tx.pure(bcs.U64.serialize(amount))],\n });\n}\n\nexport function takeAllCoinBalanceFromBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n coinType: string,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::assets_bag::take_all_coin_balance`,\n typeArguments: [coinType],\n arguments: [tx.object(assetsBag)],\n });\n}\n\nexport function placeCoinBalanceInBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n coinType: string,\n balance: ObjectArgument,\n) {\n tx.moveCall({\n target: `${packageId}::assets_bag::place_coin_balance`,\n typeArguments: [coinType],\n arguments: [tx.object(assetsBag), tx.object(balance)],\n });\n}\n\nexport function placeAssetInBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n assetType: string,\n asset: ObjectArgument,\n) {\n tx.moveCall({\n target: `${packageId}::assets_bag::place_asset`,\n typeArguments: [assetType],\n arguments: [tx.object(assetsBag), tx.object(asset)],\n });\n}\n\nexport function takeAssetFromBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n assetType: string,\n asset: ObjectArgument,\n) {\n return tx.moveCall({\n target: `${packageId}::assets_bag::take_asset`,\n typeArguments: [assetType],\n arguments: [tx.object(assetsBag), tx.object(asset)],\n });\n}\n\nexport function getSizeOfBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::assets_bag::get_size`,\n arguments: [tx.object(assetsBag)],\n });\n}\n\nexport function destroyBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::assets_bag::destroy_empty`,\n arguments: [tx.object(assetsBag)],\n });\n}\n\nexport function startNewChain(\n tx: Transaction,\n { packageId }: ChainData,\n metadata: Uint8Array,\n coin?: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::start_new_chain`,\n arguments: [\n bcs.vector(bcs.u8()).serialize(metadata),\n coin ? tx.object(coin) : bcs.option(bcs.ObjectArg).serialize(null),\n ],\n });\n}\n\nexport function createAnchorWithAssetBag(\n tx: Transaction,\n { packageId }: ChainData,\n assetsBag: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::create_anchor_with_assets_bag_ref`,\n arguments: [tx.object(assetsBag)],\n });\n}\n\nexport function updateAnchorStateForMigraton(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n metadata: Uint8Array,\n stateIndex: number,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::update_anchor_state_for_migration`,\n arguments: [\n tx.object(anchor),\n bcs.vector(bcs.u8()).serialize(metadata),\n bcs.u32().serialize(stateIndex),\n ],\n });\n}\n\nexport function destroyAnchor(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::destroy`,\n arguments: [tx.object(anchor)],\n });\n}\n\nexport function borrowAssets(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::borrow_assets`,\n arguments: [tx.object(anchor)],\n });\n}\n\nexport function returnAssetsFromBorrow(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n assetsBag: ObjectArgument,\n borrow: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::return_assets_from_borrow`,\n arguments: [tx.object(anchor), tx.object(assetsBag), tx.object(borrow)],\n });\n}\n\nexport function receiveRequest(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n request: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::receive_request`,\n arguments: [tx.object(anchor), tx.object(request)],\n });\n}\n\nexport function transition(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n newStateMetadata: Uint8Array,\n receipts: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::transition`,\n arguments: [\n tx.object(anchor),\n bcs.vector(bcs.u8()).serialize(newStateMetadata),\n tx.object(receipts),\n ],\n });\n}\n\nexport function placeCoinForMigration(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n coinType: string,\n coin: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::place_coin_for_migration`,\n typeArguments: [coinType],\n arguments: [tx.object(anchor), tx.object(coin)],\n });\n}\n\nexport function placeCoinBalanceForMigration(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n coinType: string,\n balance: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::place_coin_balance_for_migration`,\n typeArguments: [coinType],\n arguments: [tx.object(anchor), tx.object(balance)],\n });\n}\n\nexport function placeAssetForMigration(\n tx: Transaction,\n { packageId }: ChainData,\n anchor: ObjectArgument,\n assetType: string,\n asset: ObjectArgument,\n): TransactionObjectArgument {\n return tx.moveCall({\n target: `${packageId}::anchor::place_asset_for_migration`,\n typeArguments: [assetType],\n arguments: [tx.object(anchor), tx.object(asset)],\n });\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["import_bcs"]
7
+ }
@@ -0,0 +1,124 @@
1
+ export declare const Receipt: import("@iota/iota-sdk/bcs").BcsType<{
2
+ RequestID: string;
3
+ }, {
4
+ RequestID: string | Uint8Array<ArrayBufferLike>;
5
+ }>;
6
+ export declare const AssetsBag: import("@iota/iota-sdk/bcs").BcsType<{
7
+ ID: string;
8
+ Size: string;
9
+ }, {
10
+ ID: string | Uint8Array<ArrayBufferLike>;
11
+ Size: string | number | bigint;
12
+ }>;
13
+ export declare const ReferentAssetsBag: import("@iota/iota-sdk/bcs").BcsType<{
14
+ ID: string;
15
+ Value: {
16
+ ID: string;
17
+ Size: string;
18
+ } | null;
19
+ }, {
20
+ ID: string | Uint8Array<ArrayBufferLike>;
21
+ Value: {
22
+ ID: string | Uint8Array<ArrayBufferLike>;
23
+ Size: string | number | bigint;
24
+ } | null | undefined;
25
+ }>;
26
+ export declare const Anchor: import("@iota/iota-sdk/bcs").BcsType<{
27
+ UID: string;
28
+ Assets: {
29
+ ID: string;
30
+ Value: {
31
+ ID: string;
32
+ Size: string;
33
+ } | null;
34
+ };
35
+ StateMetadata: number[];
36
+ StateIndex: number;
37
+ }, {
38
+ UID: string | Uint8Array<ArrayBufferLike>;
39
+ Assets: {
40
+ ID: string | Uint8Array<ArrayBufferLike>;
41
+ Value: {
42
+ ID: string | Uint8Array<ArrayBufferLike>;
43
+ Size: string | number | bigint;
44
+ } | null | undefined;
45
+ };
46
+ StateMetadata: Iterable<number> & {
47
+ length: number;
48
+ };
49
+ StateIndex: number;
50
+ }>;
51
+ export declare const Message: import("@iota/iota-sdk/bcs").BcsType<{
52
+ Contract: number;
53
+ Function: number;
54
+ Args: number[][];
55
+ }, {
56
+ Contract: number;
57
+ Function: number;
58
+ Args: Iterable<Iterable<number> & {
59
+ length: number;
60
+ }> & {
61
+ length: number;
62
+ };
63
+ }>;
64
+ export declare const CoinAllowance: import("@iota/iota-sdk/bcs").BcsType<{
65
+ CoinType: string;
66
+ Balance: string;
67
+ }, {
68
+ CoinType: string;
69
+ Balance: string | number | bigint;
70
+ }>;
71
+ export declare const Request: import("@iota/iota-sdk/bcs").BcsType<{
72
+ UID: string;
73
+ Sender: string;
74
+ AssetsBag: {
75
+ ID: string;
76
+ Value: {
77
+ ID: string;
78
+ Size: string;
79
+ } | null;
80
+ };
81
+ Message: {
82
+ Contract: number;
83
+ Function: number;
84
+ Args: number[][];
85
+ };
86
+ Allowance: {
87
+ CoinType: string;
88
+ Balance: string;
89
+ }[];
90
+ GasBudget: string;
91
+ }, {
92
+ UID: string | Uint8Array<ArrayBufferLike>;
93
+ Sender: string | Uint8Array<ArrayBufferLike>;
94
+ AssetsBag: {
95
+ ID: string | Uint8Array<ArrayBufferLike>;
96
+ Value: {
97
+ ID: string | Uint8Array<ArrayBufferLike>;
98
+ Size: string | number | bigint;
99
+ } | null | undefined;
100
+ };
101
+ Message: {
102
+ Contract: number;
103
+ Function: number;
104
+ Args: Iterable<Iterable<number> & {
105
+ length: number;
106
+ }> & {
107
+ length: number;
108
+ };
109
+ };
110
+ Allowance: Iterable<{
111
+ CoinType: string;
112
+ Balance: string | number | bigint;
113
+ }> & {
114
+ length: number;
115
+ };
116
+ GasBudget: string | number | bigint;
117
+ }>;
118
+ export declare const RequestEvent: import("@iota/iota-sdk/bcs").BcsType<{
119
+ RequestID: string;
120
+ Anchor: string;
121
+ }, {
122
+ RequestID: string | Uint8Array<ArrayBufferLike>;
123
+ Anchor: string | Uint8Array<ArrayBufferLike>;
124
+ }>;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var move_bcs_exports = {};
20
+ __export(move_bcs_exports, {
21
+ Anchor: () => Anchor,
22
+ AssetsBag: () => AssetsBag,
23
+ CoinAllowance: () => CoinAllowance,
24
+ Message: () => Message,
25
+ Receipt: () => Receipt,
26
+ ReferentAssetsBag: () => ReferentAssetsBag,
27
+ Request: () => Request,
28
+ RequestEvent: () => RequestEvent
29
+ });
30
+ module.exports = __toCommonJS(move_bcs_exports);
31
+ var import_bcs = require("@iota/iota-sdk/bcs");
32
+ const Receipt = import_bcs.bcs.struct("Receipt", {
33
+ RequestID: import_bcs.bcs.Address
34
+ });
35
+ const AssetsBag = import_bcs.bcs.struct("AssetsBag", {
36
+ ID: import_bcs.bcs.Address,
37
+ Size: import_bcs.bcs.u64()
38
+ });
39
+ const ReferentAssetsBag = import_bcs.bcs.struct("ReferentAssetsBag", {
40
+ ID: import_bcs.bcs.Address,
41
+ Value: import_bcs.bcs.option(AssetsBag)
42
+ });
43
+ const Anchor = import_bcs.bcs.struct("Anchor", {
44
+ UID: import_bcs.bcs.Address,
45
+ Assets: ReferentAssetsBag,
46
+ StateMetadata: import_bcs.bcs.vector(import_bcs.bcs.u8()),
47
+ StateIndex: import_bcs.bcs.u32()
48
+ });
49
+ const Message = import_bcs.bcs.struct("Message", {
50
+ Contract: import_bcs.bcs.u32(),
51
+ Function: import_bcs.bcs.u32(),
52
+ Args: import_bcs.bcs.vector(import_bcs.bcs.vector(import_bcs.bcs.u8()))
53
+ });
54
+ const CoinAllowance = import_bcs.bcs.struct("CoinAllowance", {
55
+ CoinType: import_bcs.bcs.string(),
56
+ Balance: import_bcs.bcs.u64()
57
+ });
58
+ const Request = import_bcs.bcs.struct("Request", {
59
+ UID: import_bcs.bcs.Address,
60
+ Sender: import_bcs.bcs.Address,
61
+ AssetsBag: ReferentAssetsBag,
62
+ Message,
63
+ Allowance: import_bcs.bcs.vector(CoinAllowance),
64
+ GasBudget: import_bcs.bcs.u64()
65
+ });
66
+ const RequestEvent = import_bcs.bcs.struct("RequestEvent", {
67
+ RequestID: import_bcs.bcs.Address,
68
+ Anchor: import_bcs.bcs.Address
69
+ });
70
+ //# sourceMappingURL=move_bcs.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/move_bcs.ts"],
4
+ "sourcesContent": ["import { bcs } from '@iota/iota-sdk/bcs';\n\nexport const Receipt = bcs.struct('Receipt', {\n RequestID: bcs.Address,\n});\n\nexport const AssetsBag = bcs.struct('AssetsBag', {\n ID: bcs.Address,\n Size: bcs.u64(),\n});\n\nexport const ReferentAssetsBag = bcs.struct('ReferentAssetsBag', {\n ID: bcs.Address,\n Value: bcs.option(AssetsBag),\n});\n\nexport const Anchor = bcs.struct('Anchor', {\n UID: bcs.Address,\n Assets: ReferentAssetsBag,\n StateMetadata: bcs.vector(bcs.u8()),\n StateIndex: bcs.u32(),\n});\n\nexport const Message = bcs.struct('Message', {\n Contract: bcs.u32(),\n Function: bcs.u32(),\n Args: bcs.vector(bcs.vector(bcs.u8())),\n});\n\nexport const CoinAllowance = bcs.struct('CoinAllowance', {\n CoinType: bcs.string(),\n Balance: bcs.u64(),\n});\n\nexport const Request = bcs.struct('Request', {\n UID: bcs.Address,\n Sender: bcs.Address,\n AssetsBag: ReferentAssetsBag,\n Message: Message,\n Allowance: bcs.vector(CoinAllowance),\n GasBudget: bcs.u64(),\n});\n\nexport const RequestEvent = bcs.struct('RequestEvent', {\n RequestID: bcs.Address,\n Anchor: bcs.Address,\n});\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAAoB;AAEb,MAAM,UAAU,eAAI,OAAO,WAAW;AAAA,EACzC,WAAW,eAAI;AACnB,CAAC;AAEM,MAAM,YAAY,eAAI,OAAO,aAAa;AAAA,EAC7C,IAAI,eAAI;AAAA,EACR,MAAM,eAAI,IAAI;AAClB,CAAC;AAEM,MAAM,oBAAoB,eAAI,OAAO,qBAAqB;AAAA,EAC7D,IAAI,eAAI;AAAA,EACR,OAAO,eAAI,OAAO,SAAS;AAC/B,CAAC;AAEM,MAAM,SAAS,eAAI,OAAO,UAAU;AAAA,EACvC,KAAK,eAAI;AAAA,EACT,QAAQ;AAAA,EACR,eAAe,eAAI,OAAO,eAAI,GAAG,CAAC;AAAA,EAClC,YAAY,eAAI,IAAI;AACxB,CAAC;AAEM,MAAM,UAAU,eAAI,OAAO,WAAW;AAAA,EACzC,UAAU,eAAI,IAAI;AAAA,EAClB,UAAU,eAAI,IAAI;AAAA,EAClB,MAAM,eAAI,OAAO,eAAI,OAAO,eAAI,GAAG,CAAC,CAAC;AACzC,CAAC;AAEM,MAAM,gBAAgB,eAAI,OAAO,iBAAiB;AAAA,EACrD,UAAU,eAAI,OAAO;AAAA,EACrB,SAAS,eAAI,IAAI;AACrB,CAAC;AAEM,MAAM,UAAU,eAAI,OAAO,WAAW;AAAA,EACzC,KAAK,eAAI;AAAA,EACT,QAAQ,eAAI;AAAA,EACZ,WAAW;AAAA,EACX;AAAA,EACA,WAAW,eAAI,OAAO,aAAa;AAAA,EACnC,WAAW,eAAI,IAAI;AACvB,CAAC;AAEM,MAAM,eAAe,eAAI,OAAO,gBAAgB;AAAA,EACnD,WAAW,eAAI;AAAA,EACf,QAAQ,eAAI;AAChB,CAAC;",
6
+ "names": []
7
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "private": true,
3
+ "type": "commonjs"
4
+ }
@@ -0,0 +1,168 @@
1
+ import type { TransactionObjectArgument } from '@iota/iota-sdk/transactions';
2
+ import { Transaction } from '@iota/iota-sdk/transactions';
3
+ import type { ChainData } from './types/index.js';
4
+ import type { ObjectArgument } from './isc.js';
5
+ export type Agent = {
6
+ type: 'evm';
7
+ address: string;
8
+ };
9
+ export declare class IscTransaction {
10
+ #private;
11
+ constructor(chainData: ChainData, transaction?: Transaction);
12
+ private validateFinalizedStatus;
13
+ /**
14
+ * Getter for the IOTA MOVE Transaction.
15
+ */
16
+ transaction(): Transaction;
17
+ /**
18
+ * Create a bag.
19
+ */
20
+ newBag(): TransactionObjectArgument;
21
+ /**
22
+ * Get some amount in a coin.
23
+ */
24
+ coinFromAmount({ amount }: {
25
+ amount: number | bigint;
26
+ }): TransactionObjectArgument;
27
+ /**
28
+ * Place a coin in a bag.
29
+ *
30
+ * **Uses the IOTA Coin Type by default.**
31
+ */
32
+ placeCoinInBag({ bag, coinType, coin, }: {
33
+ coin: ObjectArgument;
34
+ coinType?: string;
35
+ bag: TransactionObjectArgument;
36
+ }): void;
37
+ /**
38
+ * Finally create and send a request calling the given `contractFunction` with `contractArgs` in `contract`
39
+ */
40
+ createAndSend({ bag, contract, contractFunction, contractArgs, transfers, gasBudget, }: {
41
+ contractArgs: Uint8Array[];
42
+ contract: number;
43
+ contractFunction: number;
44
+ transfers: Array<[string, number | bigint]>;
45
+ gasBudget?: number | bigint;
46
+ bag: ObjectArgument;
47
+ }): void;
48
+ /**
49
+ * Finally create and send a request calling the given `accountsFunction` in `accountsContract`
50
+ */
51
+ createAndSendToEvm({ address, accountsContract, accountsFunction, transfers, gasBudget, bag, }: {
52
+ address: string;
53
+ accountsContract: number;
54
+ accountsFunction: number;
55
+ transfers: Array<[string, number | bigint]>;
56
+ gasBudget?: number | bigint;
57
+ bag: ObjectArgument;
58
+ }): void;
59
+ /**
60
+ * Take out the specified amount of coin from the bag.
61
+ *
62
+ * **Uses the IOTA Coin Type by default.**
63
+ */
64
+ takeCoinBalanceFromBag({ bag, coinType, amount, }: {
65
+ amount: number | bigint;
66
+ coinType?: string;
67
+ bag: ObjectArgument;
68
+ }): TransactionObjectArgument;
69
+ /**
70
+ * Take out all the coin from the bag.
71
+ *
72
+ * **Uses the IOTA Coin Type by default.**
73
+ */
74
+ takeAllCoinBalanceFromBag({ bag, coinType, }: {
75
+ bag: ObjectArgument;
76
+ coinType?: string;
77
+ }): TransactionObjectArgument;
78
+ /**
79
+ * Place a coin balance in the bag.
80
+ *
81
+ * **Uses the IOTA Coin Type by default.**
82
+ */
83
+ placeCoinBalanceInBag({ bag, coinType, balance, }: {
84
+ balance: ObjectArgument;
85
+ coinType?: string;
86
+ bag: ObjectArgument;
87
+ }): void;
88
+ /**
89
+ * Place an asset in the bag.
90
+ */
91
+ placeAssetInBag({ bag, asset, assetType, }: {
92
+ asset: ObjectArgument;
93
+ bag: ObjectArgument;
94
+ assetType: string;
95
+ }): void;
96
+ /**
97
+ * Take an asset from a bag.
98
+ */
99
+ takeAssetFromBag({ bag, assetType, asset, }: {
100
+ bag: ObjectArgument;
101
+ assetType: string;
102
+ asset: ObjectArgument;
103
+ }): void;
104
+ /**
105
+ * Get the size of the bag.
106
+ */
107
+ getSizeOfBag({ bag }: {
108
+ bag: ObjectArgument;
109
+ }): TransactionObjectArgument;
110
+ /**
111
+ * Destroy the bag.
112
+ */
113
+ destroyBag({ bag }: {
114
+ bag: ObjectArgument;
115
+ }): TransactionObjectArgument;
116
+ startNewChain({ metadata, coin }: {
117
+ metadata: Uint8Array;
118
+ coin?: ObjectArgument;
119
+ }): TransactionObjectArgument;
120
+ createAnchorWithAssetBag({ bag }: {
121
+ bag: ObjectArgument;
122
+ }): TransactionObjectArgument;
123
+ updateAnchorStateForMigraton({ anchor, metadata, stateIndex, }: {
124
+ anchor: ObjectArgument;
125
+ metadata: Uint8Array;
126
+ stateIndex: number;
127
+ }): TransactionObjectArgument;
128
+ destroyAnchor({ anchor }: {
129
+ anchor: ObjectArgument;
130
+ }): TransactionObjectArgument;
131
+ borrowAssets({ anchor }: {
132
+ anchor: ObjectArgument;
133
+ }): TransactionObjectArgument;
134
+ returnAssetsFromBorrow({ anchor, bag, borrow, }: {
135
+ anchor: ObjectArgument;
136
+ bag: ObjectArgument;
137
+ borrow: ObjectArgument;
138
+ }): TransactionObjectArgument;
139
+ receiveRequest({ anchor, request }: {
140
+ anchor: ObjectArgument;
141
+ request: ObjectArgument;
142
+ }): TransactionObjectArgument;
143
+ transition({ anchor, newStateMetadata, receipts, }: {
144
+ anchor: ObjectArgument;
145
+ newStateMetadata: Uint8Array;
146
+ receipts: ObjectArgument;
147
+ }): TransactionObjectArgument;
148
+ placeCoinForMigration({ anchor, coinType, coin, }: {
149
+ anchor: ObjectArgument;
150
+ coinType?: string;
151
+ coin: ObjectArgument;
152
+ }): TransactionObjectArgument;
153
+ placeCoinBalanceForMigration({ anchor, coinType, balance, }: {
154
+ anchor: ObjectArgument;
155
+ coinType?: string;
156
+ balance: ObjectArgument;
157
+ }): TransactionObjectArgument;
158
+ placeAssetForMigration({ anchor, assetType, asset, }: {
159
+ anchor: ObjectArgument;
160
+ assetType: string;
161
+ asset: ObjectArgument;
162
+ }): TransactionObjectArgument;
163
+ /**
164
+ * Stop building this ISC Transaction and return the IOTA MOVE Transaction.
165
+ * @returns IOTA MOVE Transaction.
166
+ */
167
+ build(): Transaction;
168
+ }