@humanode-hyperlane/radix-sdk 0.0.0-stage → 30.0.0-humanode.1

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 (200) hide show
  1. package/LICENSE.md +193 -0
  2. package/README.md +42 -2
  3. package/dist/clients/protocol.d.ts +29 -0
  4. package/dist/clients/protocol.d.ts.map +1 -0
  5. package/dist/clients/protocol.js +95 -0
  6. package/dist/clients/protocol.js.map +1 -0
  7. package/dist/clients/provider.d.ts +100 -0
  8. package/dist/clients/provider.d.ts.map +1 -0
  9. package/dist/clients/provider.js +481 -0
  10. package/dist/clients/provider.js.map +1 -0
  11. package/dist/clients/signer.d.ts +66 -0
  12. package/dist/clients/signer.d.ts.map +1 -0
  13. package/dist/clients/signer.js +368 -0
  14. package/dist/clients/signer.js.map +1 -0
  15. package/dist/hook/hook-artifact-manager.d.ts +17 -0
  16. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  17. package/dist/hook/hook-artifact-manager.js +60 -0
  18. package/dist/hook/hook-artifact-manager.js.map +1 -0
  19. package/dist/hook/hook-query.d.ts +22 -0
  20. package/dist/hook/hook-query.d.ts.map +1 -0
  21. package/dist/hook/hook-query.js +79 -0
  22. package/dist/hook/hook-query.js.map +1 -0
  23. package/dist/hook/hook-tx.d.ts +21 -0
  24. package/dist/hook/hook-tx.d.ts.map +1 -0
  25. package/dist/hook/hook-tx.js +26 -0
  26. package/dist/hook/hook-tx.js.map +1 -0
  27. package/dist/hook/igp-hook.d.ts +24 -0
  28. package/dist/hook/igp-hook.d.ts.map +1 -0
  29. package/dist/hook/igp-hook.js +148 -0
  30. package/dist/hook/igp-hook.js.map +1 -0
  31. package/dist/hook/merkle-tree-hook.d.ts +24 -0
  32. package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
  33. package/dist/hook/merkle-tree-hook.js +51 -0
  34. package/dist/hook/merkle-tree-hook.js.map +1 -0
  35. package/dist/index.d.ts +13 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +12 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/ism/ism-artifact-manager.d.ts +14 -0
  40. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  41. package/dist/ism/ism-artifact-manager.js +67 -0
  42. package/dist/ism/ism-artifact-manager.js.map +1 -0
  43. package/dist/ism/ism-query.d.ts +23 -0
  44. package/dist/ism/ism-query.d.ts.map +1 -0
  45. package/dist/ism/ism-query.js +84 -0
  46. package/dist/ism/ism-query.js.map +1 -0
  47. package/dist/ism/ism-tx.d.ts +31 -0
  48. package/dist/ism/ism-tx.d.ts.map +1 -0
  49. package/dist/ism/ism-tx.js +43 -0
  50. package/dist/ism/ism-tx.js.map +1 -0
  51. package/dist/ism/multisig-ism.d.ts +38 -0
  52. package/dist/ism/multisig-ism.d.ts.map +1 -0
  53. package/dist/ism/multisig-ism.js +107 -0
  54. package/dist/ism/multisig-ism.js.map +1 -0
  55. package/dist/ism/routing-ism.d.ts +23 -0
  56. package/dist/ism/routing-ism.d.ts.map +1 -0
  57. package/dist/ism/routing-ism.js +129 -0
  58. package/dist/ism/routing-ism.js.map +1 -0
  59. package/dist/ism/test-ism.d.ts +23 -0
  60. package/dist/ism/test-ism.d.ts.map +1 -0
  61. package/dist/ism/test-ism.js +49 -0
  62. package/dist/ism/test-ism.js.map +1 -0
  63. package/dist/mailbox/mailbox-artifact-manager.d.ts +15 -0
  64. package/dist/mailbox/mailbox-artifact-manager.d.ts.map +1 -0
  65. package/dist/mailbox/mailbox-artifact-manager.js +29 -0
  66. package/dist/mailbox/mailbox-artifact-manager.js.map +1 -0
  67. package/dist/mailbox/mailbox-query.d.ts +12 -0
  68. package/dist/mailbox/mailbox-query.d.ts.map +1 -0
  69. package/dist/mailbox/mailbox-query.js +72 -0
  70. package/dist/mailbox/mailbox-query.js.map +1 -0
  71. package/dist/mailbox/mailbox-query.test.d.ts +2 -0
  72. package/dist/mailbox/mailbox-query.test.d.ts.map +1 -0
  73. package/dist/mailbox/mailbox-query.test.js +65 -0
  74. package/dist/mailbox/mailbox-query.test.js.map +1 -0
  75. package/dist/mailbox/mailbox-tx.d.ts +21 -0
  76. package/dist/mailbox/mailbox-tx.d.ts.map +1 -0
  77. package/dist/mailbox/mailbox-tx.js +27 -0
  78. package/dist/mailbox/mailbox-tx.js.map +1 -0
  79. package/dist/mailbox/mailbox.d.ts +24 -0
  80. package/dist/mailbox/mailbox.d.ts.map +1 -0
  81. package/dist/mailbox/mailbox.js +171 -0
  82. package/dist/mailbox/mailbox.js.map +1 -0
  83. package/dist/testing/constants.d.ts +61 -0
  84. package/dist/testing/constants.d.ts.map +1 -0
  85. package/dist/testing/constants.js +65 -0
  86. package/dist/testing/constants.js.map +1 -0
  87. package/dist/testing/index.d.ts +8 -0
  88. package/dist/testing/index.d.ts.map +1 -0
  89. package/dist/testing/index.js +11 -0
  90. package/dist/testing/index.js.map +1 -0
  91. package/dist/testing/node.d.ts +13 -0
  92. package/dist/testing/node.d.ts.map +1 -0
  93. package/dist/testing/node.js +42 -0
  94. package/dist/testing/node.js.map +1 -0
  95. package/dist/testing/setup.d.ts +20 -0
  96. package/dist/testing/setup.d.ts.map +1 -0
  97. package/dist/testing/setup.js +61 -0
  98. package/dist/testing/setup.js.map +1 -0
  99. package/dist/tests/e2e-test.setup.d.ts +3 -0
  100. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  101. package/dist/tests/e2e-test.setup.js +32 -0
  102. package/dist/tests/e2e-test.setup.js.map +1 -0
  103. package/dist/tests/hook.e2e-test.d.ts +2 -0
  104. package/dist/tests/hook.e2e-test.d.ts.map +1 -0
  105. package/dist/tests/hook.e2e-test.js +369 -0
  106. package/dist/tests/hook.e2e-test.js.map +1 -0
  107. package/dist/tests/ism.e2e-test.d.ts +2 -0
  108. package/dist/tests/ism.e2e-test.d.ts.map +1 -0
  109. package/dist/tests/ism.e2e-test.js +250 -0
  110. package/dist/tests/ism.e2e-test.js.map +1 -0
  111. package/dist/tests/mailbox.e2e-test.d.ts +2 -0
  112. package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
  113. package/dist/tests/mailbox.e2e-test.js +254 -0
  114. package/dist/tests/mailbox.e2e-test.js.map +1 -0
  115. package/dist/tests/validator-announce.e2e-test.d.ts +2 -0
  116. package/dist/tests/validator-announce.e2e-test.d.ts.map +1 -0
  117. package/dist/tests/validator-announce.e2e-test.js +116 -0
  118. package/dist/tests/validator-announce.e2e-test.js.map +1 -0
  119. package/dist/tests/warp.e2e-test.d.ts +2 -0
  120. package/dist/tests/warp.e2e-test.d.ts.map +1 -0
  121. package/dist/tests/warp.e2e-test.js +602 -0
  122. package/dist/tests/warp.e2e-test.js.map +1 -0
  123. package/dist/utils/base-query.d.ts +188 -0
  124. package/dist/utils/base-query.d.ts.map +1 -0
  125. package/dist/utils/base-query.js +207 -0
  126. package/dist/utils/base-query.js.map +1 -0
  127. package/dist/utils/base.d.ts +67 -0
  128. package/dist/utils/base.d.ts.map +1 -0
  129. package/dist/utils/base.js +353 -0
  130. package/dist/utils/base.js.map +1 -0
  131. package/dist/utils/constants.d.ts +20 -0
  132. package/dist/utils/constants.d.ts.map +1 -0
  133. package/dist/utils/constants.js +20 -0
  134. package/dist/utils/constants.js.map +1 -0
  135. package/dist/utils/signer.d.ts +17 -0
  136. package/dist/utils/signer.d.ts.map +1 -0
  137. package/dist/utils/signer.js +60 -0
  138. package/dist/utils/signer.js.map +1 -0
  139. package/dist/utils/types.d.ts +139 -0
  140. package/dist/utils/types.d.ts.map +1 -0
  141. package/dist/utils/types.js +39 -0
  142. package/dist/utils/types.js.map +1 -0
  143. package/dist/utils/utils.d.ts +8 -0
  144. package/dist/utils/utils.d.ts.map +1 -0
  145. package/dist/utils/utils.js +47 -0
  146. package/dist/utils/utils.js.map +1 -0
  147. package/dist/utils/utils.test.d.ts +2 -0
  148. package/dist/utils/utils.test.d.ts.map +1 -0
  149. package/dist/utils/utils.test.js +27 -0
  150. package/dist/utils/utils.test.js.map +1 -0
  151. package/dist/validator-announce/validator-announce-artifact-manager.d.ts +14 -0
  152. package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
  153. package/dist/validator-announce/validator-announce-artifact-manager.js +21 -0
  154. package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
  155. package/dist/validator-announce/validator-announce-query.d.ts +6 -0
  156. package/dist/validator-announce/validator-announce-query.d.ts.map +1 -0
  157. package/dist/validator-announce/validator-announce-query.js +10 -0
  158. package/dist/validator-announce/validator-announce-query.js.map +1 -0
  159. package/dist/validator-announce/validator-announce-tx.d.ts +4 -0
  160. package/dist/validator-announce/validator-announce-tx.d.ts.map +1 -0
  161. package/dist/validator-announce/validator-announce-tx.js +6 -0
  162. package/dist/validator-announce/validator-announce-tx.js.map +1 -0
  163. package/dist/validator-announce/validator-announce.d.ts +23 -0
  164. package/dist/validator-announce/validator-announce.d.ts.map +1 -0
  165. package/dist/validator-announce/validator-announce.js +52 -0
  166. package/dist/validator-announce/validator-announce.js.map +1 -0
  167. package/dist/warp/collateral-token.d.ts +23 -0
  168. package/dist/warp/collateral-token.d.ts.map +1 -0
  169. package/dist/warp/collateral-token.js +130 -0
  170. package/dist/warp/collateral-token.js.map +1 -0
  171. package/dist/warp/populate.d.ts +71 -0
  172. package/dist/warp/populate.d.ts.map +1 -0
  173. package/dist/warp/populate.js +110 -0
  174. package/dist/warp/populate.js.map +1 -0
  175. package/dist/warp/query.d.ts +44 -0
  176. package/dist/warp/query.d.ts.map +1 -0
  177. package/dist/warp/query.js +154 -0
  178. package/dist/warp/query.js.map +1 -0
  179. package/dist/warp/synthetic-token.d.ts +23 -0
  180. package/dist/warp/synthetic-token.d.ts.map +1 -0
  181. package/dist/warp/synthetic-token.js +131 -0
  182. package/dist/warp/synthetic-token.js.map +1 -0
  183. package/dist/warp/tx.d.ts +54 -0
  184. package/dist/warp/tx.d.ts.map +1 -0
  185. package/dist/warp/tx.js +85 -0
  186. package/dist/warp/tx.js.map +1 -0
  187. package/dist/warp/warp-artifact-manager.d.ts +15 -0
  188. package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
  189. package/dist/warp/warp-artifact-manager.js +49 -0
  190. package/dist/warp/warp-artifact-manager.js.map +1 -0
  191. package/dist/warp/warp-query.d.ts +9 -0
  192. package/dist/warp/warp-query.d.ts.map +1 -0
  193. package/dist/warp/warp-query.js +130 -0
  194. package/dist/warp/warp-query.js.map +1 -0
  195. package/dist/warp/warp-tx.d.ts +48 -0
  196. package/dist/warp/warp-tx.d.ts.map +1 -0
  197. package/dist/warp/warp-tx.js +125 -0
  198. package/dist/warp/warp-tx.js.map +1 -0
  199. package/docker-compose.yml +139 -0
  200. package/package.json +64 -3
@@ -0,0 +1,368 @@
1
+ import { EntityType, } from '@radixdlt/radix-engine-toolkit';
2
+ import { assert, strip0x } from '@humanode-hyperlane/utils';
3
+ import { getCreateIgpTx, getCreateMerkleTreeHookTx, getSetIgpDestinationGasConfigTx, getSetIgpOwnerTx, } from '../hook/hook-tx.js';
4
+ import { getCreateMerkleRootMultisigIsmTx, getCreateMessageIdMultisigIsmTx, getCreateNoopIsmTx, getCreateRoutingIsmTx, getRemoveRoutingIsmDomainIsmTx, getSetRoutingIsmDomainIsmTx, getSetRoutingIsmOwnerTx, } from '../ism/ism-tx.js';
5
+ import { getCreateMailboxTx, getSetMailboxDefaultHookTx, getSetMailboxDefaultIsmTx, getSetMailboxOwnerTx, getSetMailboxRequiredHookTx, } from '../mailbox/mailbox-tx.js';
6
+ import { RadixBaseSigner } from '../utils/signer.js';
7
+ import { generateNewEd25519VirtualAccount, stringToTransactionManifest, transactionManifestToString, } from '../utils/utils.js';
8
+ import { getCreateValidatorAnnounceTx } from '../validator-announce/validator-announce-tx.js';
9
+ import { RadixWarpTx } from '../warp/tx.js';
10
+ import { RadixProvider } from './provider.js';
11
+ export class RadixSigner extends RadixProvider {
12
+ account;
13
+ tx;
14
+ signer;
15
+ constructor(account, options) {
16
+ super(options);
17
+ this.account = account;
18
+ this.signer = new RadixBaseSigner(this.networkId, this.gateway, this.base, this.account);
19
+ this.tx = {
20
+ warp: new RadixWarpTx(account, this.networkId, this.base, this.signer, this.populate.warp),
21
+ };
22
+ }
23
+ static async connectWithSigner(rpcUrls, privateKey, extraParams) {
24
+ assert(extraParams, `extra params not defined`);
25
+ const metadata = extraParams.metadata;
26
+ assert(metadata, `metadata not defined in extra params`);
27
+ assert(metadata.chainId, `chainId not defined in metadata extra params`);
28
+ const networkId = parseInt(metadata.chainId.toString());
29
+ const account = await generateNewEd25519VirtualAccount(strip0x(privateKey), networkId);
30
+ return new RadixSigner(account, {
31
+ networkId,
32
+ rpcUrls,
33
+ gatewayUrls: metadata.gatewayUrls?.map(({ http }) => http),
34
+ packageAddress: metadata.packageAddress,
35
+ });
36
+ }
37
+ getSignerAddress() {
38
+ return this.account.address;
39
+ }
40
+ supportsTransactionBatching() {
41
+ return false;
42
+ }
43
+ getBaseSigner() {
44
+ return this.signer;
45
+ }
46
+ getGatewayClient() {
47
+ return this.gateway;
48
+ }
49
+ getBaseClient() {
50
+ return this.base;
51
+ }
52
+ async transactionToPrintableJson(transaction) {
53
+ let manifest;
54
+ if (typeof transaction.manifest === 'string') {
55
+ manifest = transaction.manifest;
56
+ }
57
+ else {
58
+ manifest = await transactionManifestToString(transaction.manifest, this.networkId);
59
+ }
60
+ return {
61
+ ...transaction,
62
+ manifest,
63
+ };
64
+ }
65
+ async sendAndConfirmTransaction(transaction) {
66
+ assert(transaction.networkId === this.networkId, `Transaction networkId (${transaction.networkId}) does not match signer networkId (${this.networkId})`);
67
+ let manifest;
68
+ if (typeof transaction.manifest === 'string') {
69
+ manifest = await stringToTransactionManifest(transaction.manifest, transaction.networkId);
70
+ }
71
+ else {
72
+ manifest = transaction.manifest;
73
+ }
74
+ return this.signer.signAndBroadcast(manifest);
75
+ }
76
+ async sendAndConfirmBatchTransactions(_transactions) {
77
+ throw new Error(`Radix does not support transaction batching`);
78
+ }
79
+ // ### TX CORE ###
80
+ async createMailbox(req) {
81
+ if (req.proxyAdminAddress) {
82
+ throw new Error('ProxyAdmin is not supported on Radix. Remove proxyAdmin from config.');
83
+ }
84
+ const transactionManifest = await getCreateMailboxTx(this.base, this.account.address, req.domainId);
85
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
86
+ const mailboxAddress = await this.base.getNewComponent(receipt);
87
+ return {
88
+ mailboxAddress,
89
+ };
90
+ }
91
+ async setDefaultIsm(req) {
92
+ const transactionManifest = await getSetMailboxDefaultIsmTx(this.base, this.account.address, {
93
+ mailboxAddress: req.mailboxAddress,
94
+ ismAddress: req.ismAddress,
95
+ });
96
+ await this.signer.signAndBroadcast(transactionManifest);
97
+ return {
98
+ ismAddress: req.ismAddress,
99
+ };
100
+ }
101
+ async setDefaultHook(req) {
102
+ const transactionManifest = await getSetMailboxDefaultHookTx(this.base, this.account.address, {
103
+ mailboxAddress: req.mailboxAddress,
104
+ hookAddress: req.hookAddress,
105
+ });
106
+ await this.signer.signAndBroadcast(transactionManifest);
107
+ return {
108
+ hookAddress: req.hookAddress,
109
+ };
110
+ }
111
+ async setRequiredHook(req) {
112
+ const transactionManifest = await getSetMailboxRequiredHookTx(this.base, this.account.address, {
113
+ mailboxAddress: req.mailboxAddress,
114
+ hookAddress: req.hookAddress,
115
+ });
116
+ await this.signer.signAndBroadcast(transactionManifest);
117
+ return {
118
+ hookAddress: req.hookAddress,
119
+ };
120
+ }
121
+ async setMailboxOwner(req) {
122
+ const transactionManifest = await getSetMailboxOwnerTx(this.base, this.gateway, this.account.address, {
123
+ mailboxAddress: req.mailboxAddress,
124
+ newOwner: req.newOwner,
125
+ });
126
+ await this.signer.signAndBroadcast(transactionManifest);
127
+ return {
128
+ newOwner: req.newOwner,
129
+ };
130
+ }
131
+ async createMerkleRootMultisigIsm(req) {
132
+ const transactionManifest = await getCreateMerkleRootMultisigIsmTx(this.base, this.account.address, {
133
+ validators: req.validators,
134
+ threshold: req.threshold,
135
+ });
136
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
137
+ const ismAddress = await this.base.getNewComponent(receipt);
138
+ return {
139
+ ismAddress,
140
+ };
141
+ }
142
+ async createMessageIdMultisigIsm(req) {
143
+ const transactionManifest = await getCreateMessageIdMultisigIsmTx(this.base, this.account.address, {
144
+ validators: req.validators,
145
+ threshold: req.threshold,
146
+ });
147
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
148
+ const ismAddress = await this.base.getNewComponent(receipt);
149
+ return {
150
+ ismAddress,
151
+ };
152
+ }
153
+ async createRoutingIsm(req) {
154
+ const transactionManifest = await getCreateRoutingIsmTx(this.base, this.account.address, req.routes);
155
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
156
+ const ismAddress = await this.base.getNewComponent(receipt);
157
+ return {
158
+ ismAddress,
159
+ };
160
+ }
161
+ async setRoutingIsmRoute(req) {
162
+ const transactionManifest = await getSetRoutingIsmDomainIsmTx(this.base, this.account.address, {
163
+ ismAddress: req.ismAddress,
164
+ domainIsm: req.route,
165
+ });
166
+ await this.signer.signAndBroadcast(transactionManifest);
167
+ return {
168
+ route: req.route,
169
+ };
170
+ }
171
+ async removeRoutingIsmRoute(req) {
172
+ const transactionManifest = await getRemoveRoutingIsmDomainIsmTx(this.base, this.account.address, {
173
+ ismAddress: req.ismAddress,
174
+ domainId: req.domainId,
175
+ });
176
+ await this.signer.signAndBroadcast(transactionManifest);
177
+ return {
178
+ domainId: req.domainId,
179
+ };
180
+ }
181
+ async setRoutingIsmOwner(req) {
182
+ const transactionManifest = await getSetRoutingIsmOwnerTx(this.base, this.gateway, this.account.address, {
183
+ ismAddress: req.ismAddress,
184
+ newOwner: req.newOwner,
185
+ });
186
+ await this.signer.signAndBroadcast(transactionManifest);
187
+ return {
188
+ newOwner: req.newOwner,
189
+ };
190
+ }
191
+ async createNoopIsm(_req) {
192
+ const transactionManifest = await getCreateNoopIsmTx(this.base, this.account.address);
193
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
194
+ const ismAddress = await this.base.getNewComponent(receipt);
195
+ return {
196
+ ismAddress,
197
+ };
198
+ }
199
+ async createMerkleTreeHook(req) {
200
+ const transactionManifest = await getCreateMerkleTreeHookTx(this.base, this.account.address, req.mailboxAddress);
201
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
202
+ const hookAddress = await this.base.getNewComponent(receipt);
203
+ return {
204
+ hookAddress,
205
+ };
206
+ }
207
+ async createInterchainGasPaymasterHook(req) {
208
+ assert(req.denom, `denom required by ${RadixProvider.name}`);
209
+ const transactionManifest = await getCreateIgpTx(this.base, this.account.address, req.denom);
210
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
211
+ const hookAddress = await this.base.getNewComponent(receipt);
212
+ return {
213
+ hookAddress,
214
+ };
215
+ }
216
+ async setInterchainGasPaymasterHookOwner(req) {
217
+ const transactionManifest = await getSetIgpOwnerTx(this.base, this.gateway, this.account.address, {
218
+ igpAddress: req.hookAddress,
219
+ newOwner: req.newOwner,
220
+ });
221
+ await this.signer.signAndBroadcast(transactionManifest);
222
+ return {
223
+ newOwner: req.newOwner,
224
+ };
225
+ }
226
+ async setDestinationGasConfig(req) {
227
+ const transactionManifest = await getSetIgpDestinationGasConfigTx(this.base, this.account.address, {
228
+ igpAddress: req.hookAddress,
229
+ destinationGasConfig: req.destinationGasConfig,
230
+ });
231
+ await this.signer.signAndBroadcast(transactionManifest);
232
+ return {
233
+ destinationGasConfig: req.destinationGasConfig,
234
+ };
235
+ }
236
+ async removeDestinationGasConfig(_req) {
237
+ throw new Error(`RemoveDestinationGasConfig is currently not supported on Radix`);
238
+ }
239
+ async createNoopHook(_req) {
240
+ throw new Error(`CreateNoopHook is currently not supported on Radix`);
241
+ }
242
+ async createValidatorAnnounce(req) {
243
+ const transactionManifest = await getCreateValidatorAnnounceTx(this.base, this.account.address, req.mailboxAddress);
244
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
245
+ const validatorAnnounceId = await this.base.getNewComponent(receipt);
246
+ return {
247
+ validatorAnnounceId,
248
+ };
249
+ }
250
+ async createProxyAdmin(_req) {
251
+ throw new Error('ProxyAdmin is not supported on Radix');
252
+ }
253
+ async setProxyAdminOwner(_req) {
254
+ throw new Error('ProxyAdmin is not supported on Radix');
255
+ }
256
+ // ### TX WARP ###
257
+ async createNativeToken(_req) {
258
+ throw new Error(`Native Token is not supported on Radix`);
259
+ }
260
+ async createCollateralToken(req) {
261
+ if (req.proxyAdminAddress) {
262
+ throw new Error('ProxyAdmin is not supported on Radix. Remove proxyAdmin from config.');
263
+ }
264
+ return {
265
+ tokenAddress: await this.tx.warp.createCollateralToken({
266
+ mailbox: req.mailboxAddress,
267
+ origin_denom: req.collateralDenom,
268
+ }),
269
+ };
270
+ }
271
+ async createSyntheticToken(req) {
272
+ if (req.proxyAdminAddress) {
273
+ throw new Error('ProxyAdmin is not supported on Radix. Remove proxyAdmin from config.');
274
+ }
275
+ return {
276
+ tokenAddress: await this.tx.warp.createSyntheticToken({
277
+ mailbox: req.mailboxAddress,
278
+ name: req.name,
279
+ symbol: req.denom,
280
+ divisibility: req.decimals,
281
+ }),
282
+ };
283
+ }
284
+ async setTokenOwner(req) {
285
+ await this.tx.warp.setTokenOwner({
286
+ token: req.tokenAddress,
287
+ new_owner: req.newOwner,
288
+ });
289
+ return {
290
+ newOwner: req.newOwner,
291
+ };
292
+ }
293
+ async setTokenIsm(req) {
294
+ await this.tx.warp.setTokenIsm({
295
+ token: req.tokenAddress,
296
+ ism: req.ismAddress,
297
+ });
298
+ return {
299
+ ismAddress: req.ismAddress ?? '0x0000000000000000000000000000000000000000',
300
+ };
301
+ }
302
+ async setTokenHook(_req) {
303
+ throw new Error(`SetTokenHook is currently not supported on Radix`);
304
+ }
305
+ async enrollRemoteRouter(req) {
306
+ await this.tx.warp.enrollRemoteRouter({
307
+ token: req.tokenAddress,
308
+ receiver_domain: req.remoteRouter.receiverDomainId,
309
+ receiver_address: req.remoteRouter.receiverAddress,
310
+ gas: req.remoteRouter.gas,
311
+ });
312
+ return {
313
+ receiverDomainId: req.remoteRouter.receiverDomainId,
314
+ };
315
+ }
316
+ async unenrollRemoteRouter(req) {
317
+ await this.tx.warp.unenrollRemoteRouter({
318
+ token: req.tokenAddress,
319
+ receiver_domain: req.receiverDomainId,
320
+ });
321
+ return {
322
+ receiverDomainId: req.receiverDomainId,
323
+ };
324
+ }
325
+ async transfer(req) {
326
+ assert(req.denom, `denom required by ${RadixProvider.name}`);
327
+ const manifest = await this.base.transfer({
328
+ from_address: this.account.address,
329
+ to_address: req.recipient,
330
+ amount: req.amount,
331
+ resource_address: req.denom,
332
+ });
333
+ await this.signer.signAndBroadcast(manifest);
334
+ return {
335
+ recipient: req.recipient,
336
+ };
337
+ }
338
+ async remoteTransfer(req) {
339
+ await this.tx.warp.remoteTransfer({
340
+ token: req.tokenAddress,
341
+ destination_domain: req.destinationDomainId,
342
+ recipient: req.recipient,
343
+ amount: req.amount,
344
+ custom_hook_id: req.customHookAddress || '',
345
+ gas_limit: req.gasLimit,
346
+ custom_hook_metadata: req.customHookMetadata || '',
347
+ max_fee: req.maxFee,
348
+ });
349
+ return { tokenAddress: req.tokenAddress };
350
+ }
351
+ async publishPackage(params) {
352
+ const { code, packageDefinition } = params;
353
+ const transactionManifest = await this.base.createPublishPackageManifest({
354
+ from_address: this.account.address,
355
+ code,
356
+ packageDefinition,
357
+ });
358
+ const receipt = await this.signer.signAndBroadcast(transactionManifest);
359
+ // Extract package address from transaction receipt
360
+ const transactionStateUpdates = receipt.transaction.receipt
361
+ ?.state_updates;
362
+ assert(transactionStateUpdates?.new_global_entities, `Expected global entities to be created when publishing a package on Radix network with id "${this.networkId}"`);
363
+ const publishedPackageInfo = transactionStateUpdates.new_global_entities.find((entity) => entity.entity_type === EntityType.GlobalPackage);
364
+ assert(publishedPackageInfo, `Expected global package info to be defined after publishing a new package on Radix network with id "${this.networkId}"`);
365
+ return publishedPackageInfo.entity_address;
366
+ }
367
+ }
368
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/clients/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { ArtifactReader, ArtifactWriter } from '@humanode-hyperlane/provider-sdk/artifact';
3
+ import { DeployedHookAddress, DeployedHookArtifact, HookType, IRawHookArtifactManager, RawHookArtifactConfigs } from '@humanode-hyperlane/provider-sdk/hook';
4
+ import { RadixSigner } from '../clients/signer.js';
5
+ import { RadixBase } from '../utils/base.js';
6
+ export declare class RadixHookArtifactManager implements IRawHookArtifactManager {
7
+ private readonly gateway;
8
+ private readonly base;
9
+ private readonly mailboxAddress;
10
+ private readonly nativeTokenDenom;
11
+ constructor(gateway: GatewayApiClient, base: RadixBase, mailboxAddress: string, nativeTokenDenom: string);
12
+ readHook(address: string): Promise<DeployedHookArtifact>;
13
+ private radixHookTypeToAltVMHookType;
14
+ createReader<T extends HookType>(type: T): ArtifactReader<RawHookArtifactConfigs[T], DeployedHookAddress>;
15
+ createWriter<T extends HookType>(type: T, signer: RadixSigner): ArtifactWriter<RawHookArtifactConfigs[T], DeployedHookAddress>;
16
+ }
17
+ //# sourceMappingURL=hook-artifact-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-artifact-manager.d.ts","sourceRoot":"","sources":["../../src/hook/hook-artifact-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAGrE,OAAO,EACL,cAAc,EACd,cAAc,EACf,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,QAAQ,EACR,uBAAuB,EACvB,sBAAsB,EAEvB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAS7C,qBAAa,wBAAyB,YAAW,uBAAuB;IAEpE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAHhB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,SAAS,EACf,cAAc,EAAE,MAAM,EACtB,gBAAgB,EAAE,MAAM;IAGrC,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAY9D,OAAO,CAAC,4BAA4B;IAWpC,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,GACN,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC;IAkBjE,YAAY,CAAC,CAAC,SAAS,QAAQ,EAC7B,IAAI,EAAE,CAAC,EACP,MAAM,EAAE,WAAW,GAClB,cAAc,CAAC,sBAAsB,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC;CA+BlE"}
@@ -0,0 +1,60 @@
1
+ import { AltVM } from '@humanode-hyperlane/provider-sdk';
2
+ import { throwUnsupportedHookType, } from '@humanode-hyperlane/provider-sdk/hook';
3
+ import { getHookType } from './hook-query.js';
4
+ import { RadixIgpHookReader, RadixIgpHookWriter } from './igp-hook.js';
5
+ import { RadixMerkleTreeHookReader, RadixMerkleTreeHookWriter, } from './merkle-tree-hook.js';
6
+ export class RadixHookArtifactManager {
7
+ gateway;
8
+ base;
9
+ mailboxAddress;
10
+ nativeTokenDenom;
11
+ constructor(gateway, base, mailboxAddress, nativeTokenDenom) {
12
+ this.gateway = gateway;
13
+ this.base = base;
14
+ this.mailboxAddress = mailboxAddress;
15
+ this.nativeTokenDenom = nativeTokenDenom;
16
+ }
17
+ async readHook(address) {
18
+ // Detect hook type first
19
+ const radixHookType = await getHookType(this.gateway, address);
20
+ // Map Radix hook type to AltVM hook type
21
+ const hookType = this.radixHookTypeToAltVMHookType(radixHookType);
22
+ // Get the appropriate reader and read the hook
23
+ const reader = this.createReader(hookType);
24
+ return reader.read(address);
25
+ }
26
+ radixHookTypeToAltVMHookType(radixType) {
27
+ switch (radixType) {
28
+ case 'InterchainGasPaymaster':
29
+ return AltVM.HookType.INTERCHAIN_GAS_PAYMASTER;
30
+ case 'MerkleTreeHook':
31
+ return AltVM.HookType.MERKLE_TREE;
32
+ default:
33
+ throw new Error(`Unknown Radix hook type: ${radixType}`);
34
+ }
35
+ }
36
+ createReader(type) {
37
+ const readers = {
38
+ merkleTreeHook: () => new RadixMerkleTreeHookReader(this.gateway),
39
+ interchainGasPaymaster: () => new RadixIgpHookReader(this.gateway),
40
+ };
41
+ const reader = readers[type];
42
+ if (!reader) {
43
+ return throwUnsupportedHookType(type, 'Radix');
44
+ }
45
+ return reader();
46
+ }
47
+ createWriter(type, signer) {
48
+ const baseSigner = signer.getBaseSigner();
49
+ const writers = {
50
+ merkleTreeHook: () => new RadixMerkleTreeHookWriter(this.gateway, baseSigner, this.base, this.mailboxAddress),
51
+ interchainGasPaymaster: () => new RadixIgpHookWriter(this.gateway, baseSigner, this.base, this.nativeTokenDenom),
52
+ };
53
+ const writer = writers[type];
54
+ if (!writer) {
55
+ return throwUnsupportedHookType(type, 'Radix');
56
+ }
57
+ return writer();
58
+ }
59
+ }
60
+ //# sourceMappingURL=hook-artifact-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-artifact-manager.js","sourceRoot":"","sources":["../../src/hook/hook-artifact-manager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAKzD,OAAO,EAML,wBAAwB,GACzB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EACL,yBAAyB,EACzB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,OAAO,wBAAwB;IAEhB;IACA;IACA;IACA;IAJnB,YACmB,OAAyB,EACzB,IAAe,EACf,cAAsB,EACtB,gBAAwB;QAHxB,YAAO,GAAP,OAAO,CAAkB;QACzB,SAAI,GAAJ,IAAI,CAAW;QACf,mBAAc,GAAd,cAAc,CAAQ;QACtB,qBAAgB,GAAhB,gBAAgB,CAAQ;IACxC,CAAC;IAEJ,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,yBAAyB;QACzB,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE/D,yCAAyC;QACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,aAAa,CAAC,CAAC;QAElE,+CAA+C;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEO,4BAA4B,CAAC,SAAiB;QACpD,QAAQ,SAAS,EAAE,CAAC;YAClB,KAAK,wBAAwB;gBAC3B,OAAO,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC;YACjD,KAAK,gBAAgB;gBACnB,OAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;YACpC;gBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,YAAY,CACV,IAAO;QAEP,MAAM,OAAO,GAKR;YACH,cAAc,EAAE,GAAG,EAAE,CAAC,IAAI,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC;YACjE,sBAAsB,EAAE,GAAG,EAAE,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;SACnE,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;IAED,YAAY,CACV,IAAO,EACP,MAAmB;QAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAE1C,MAAM,OAAO,GAKR;YACH,cAAc,EAAE,GAAG,EAAE,CACnB,IAAI,yBAAyB,CAC3B,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,cAAc,CACpB;YACH,sBAAsB,EAAE,GAAG,EAAE,CAC3B,IAAI,kBAAkB,CACpB,IAAI,CAAC,OAAO,EACZ,UAAU,EACV,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,gBAAgB,CACtB;SACJ,CAAC;QAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,22 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { RadixHookTypes } from '../utils/types.js';
3
+ export declare function getHookType(gateway: Readonly<GatewayApiClient>, hookAddress: string): Promise<RadixHookTypes>;
4
+ export declare function getIgpHookConfig(gateway: Readonly<GatewayApiClient>, hookAddress: string): Promise<{
5
+ type: RadixHookTypes.IGP;
6
+ address: string;
7
+ owner: string;
8
+ destinationGasConfigs: {
9
+ [domainId: string]: {
10
+ gasOracle: {
11
+ tokenExchangeRate: string;
12
+ gasPrice: string;
13
+ };
14
+ gasOverhead: string;
15
+ };
16
+ };
17
+ }>;
18
+ export declare function getMerkleTreeHookConfig(gateway: Readonly<GatewayApiClient>, hookAddress: string): Promise<{
19
+ type: RadixHookTypes.MERKLE_TREE;
20
+ address: string;
21
+ }>;
22
+ //# sourceMappingURL=hook-query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-query.d.ts","sourceRoot":"","sources":["../../src/hook/hook-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAWrE,OAAO,EAAe,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYhE,wBAAsB,WAAW,CAC/B,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB,EAAE;QACrB,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,SAAS,EAAE;gBACT,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,QAAQ,EAAE,MAAM,CAAC;aAClB,CAAC;YACF,WAAW,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CACH,CAAC,CA2FD;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IACT,IAAI,EAAE,cAAc,CAAC,WAAW,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC,CAiBD"}
@@ -0,0 +1,79 @@
1
+ import { assert } from '@humanode-hyperlane/utils';
2
+ import { getComponentOwner, getComponentState, getFieldValueFromEntityState, getKeysFromKvStore, getRadixComponentDetails, } from '../utils/base-query.js';
3
+ import { RadixHookTypes } from '../utils/types.js';
4
+ function isHookType(maybeHookType) {
5
+ switch (maybeHookType) {
6
+ case RadixHookTypes.IGP:
7
+ case RadixHookTypes.MERKLE_TREE:
8
+ return true;
9
+ }
10
+ return false;
11
+ }
12
+ export async function getHookType(gateway, hookAddress) {
13
+ const hookDetails = await getRadixComponentDetails(gateway, hookAddress, 'hook');
14
+ const hookType = hookDetails.blueprint_name;
15
+ assert(isHookType(hookType), `Expected component at address ${hookAddress} to be a hook but got ${hookType}`);
16
+ return hookType;
17
+ }
18
+ export async function getIgpHookConfig(gateway, hookAddress) {
19
+ const hookDetails = await getRadixComponentDetails(gateway, hookAddress, RadixHookTypes.IGP);
20
+ const hookType = hookDetails.blueprint_name;
21
+ assert(hookType === RadixHookTypes.IGP, `Expected component at address ${hookAddress} to be "${RadixHookTypes.IGP}" but got ${hookType}`);
22
+ const owner = await getComponentOwner(gateway, hookAddress, hookDetails);
23
+ const hookState = getComponentState(hookAddress, hookDetails);
24
+ const destinationGasConfigsKeyValueStoreAddress = getFieldValueFromEntityState('destination_gas_configs', hookAddress, hookState);
25
+ const keys = await getKeysFromKvStore(gateway, destinationGasConfigsKeyValueStoreAddress);
26
+ const destinationGasConfigs = {};
27
+ for (const key of keys) {
28
+ const { entries } = await gateway.state.innerClient.keyValueStoreData({
29
+ stateKeyValueStoreDataRequest: {
30
+ key_value_store_address: destinationGasConfigsKeyValueStoreAddress,
31
+ keys: [
32
+ {
33
+ key_hex: key.raw_hex,
34
+ },
35
+ ],
36
+ },
37
+ });
38
+ const rawRemoteDomain = key.programmatic_json;
39
+ assert(rawRemoteDomain.kind === 'U32', `Expected domain id to be stored as a number on IGP at address ${hookAddress}`);
40
+ const remoteDomain = rawRemoteDomain.value;
41
+ const [entry] = entries;
42
+ assert(entry, `Expected to find at least one entry for gas config with key ${remoteDomain} on IGP at address ${hookAddress}`);
43
+ const rawGasConfig = entry.value.programmatic_json;
44
+ assert(rawGasConfig.kind === 'Tuple', `Expected gasConfig to be an object on IGP at address ${hookAddress}`);
45
+ const gasConfigFields = rawGasConfig.fields ?? [];
46
+ const gasOracleFields = gasConfigFields?.find((r) => r.field_name === 'gas_oracle')?.fields ?? [];
47
+ Object.assign(destinationGasConfigs, {
48
+ [remoteDomain]: {
49
+ gasOracle: {
50
+ tokenExchangeRate: getFieldValueFromEntityState('token_exchange_rate', hookAddress, {
51
+ fields: gasOracleFields,
52
+ }),
53
+ gasPrice: getFieldValueFromEntityState('gas_price', hookAddress, {
54
+ fields: gasOracleFields,
55
+ }),
56
+ },
57
+ gasOverhead: getFieldValueFromEntityState('gas_overhead', hookAddress, {
58
+ fields: gasConfigFields,
59
+ }),
60
+ },
61
+ });
62
+ }
63
+ return {
64
+ type: RadixHookTypes.IGP,
65
+ address: hookAddress,
66
+ owner,
67
+ destinationGasConfigs,
68
+ };
69
+ }
70
+ export async function getMerkleTreeHookConfig(gateway, hookAddress) {
71
+ const hookDetails = await getRadixComponentDetails(gateway, hookAddress, RadixHookTypes.MERKLE_TREE);
72
+ const hookType = hookDetails.blueprint_name;
73
+ assert(hookType === RadixHookTypes.MERKLE_TREE, `Expected component at address ${hookAddress} to be "${RadixHookTypes.MERKLE_TREE}" but got ${hookType}`);
74
+ return {
75
+ type: RadixHookTypes.MERKLE_TREE,
76
+ address: hookAddress,
77
+ };
78
+ }
79
+ //# sourceMappingURL=hook-query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-query.js","sourceRoot":"","sources":["../../src/hook/hook-query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { TransactionManifest } from '@radixdlt/radix-engine-toolkit';
3
+ import { RadixBase } from '../utils/base.js';
4
+ export declare function getCreateMerkleTreeHookTx(base: Readonly<RadixBase>, fromAddress: string, mailboxAddress: string): Promise<TransactionManifest>;
5
+ export declare function getCreateIgpTx(base: Readonly<RadixBase>, fromAddress: string, nativeTokenDenom: string): Promise<TransactionManifest>;
6
+ export declare function getSetIgpOwnerTx(base: Readonly<RadixBase>, gateway: Readonly<GatewayApiClient>, fromAddress: string, { igpAddress, newOwner, }: {
7
+ igpAddress: string;
8
+ newOwner: string;
9
+ }): Promise<TransactionManifest>;
10
+ export declare function getSetIgpDestinationGasConfigTx(base: Readonly<RadixBase>, fromAddress: string, { igpAddress, destinationGasConfig, }: {
11
+ igpAddress: string;
12
+ destinationGasConfig: {
13
+ remoteDomainId: number;
14
+ gasOracle: {
15
+ tokenExchangeRate: string;
16
+ gasPrice: string;
17
+ };
18
+ gasOverhead: string;
19
+ };
20
+ }): Promise<TransactionManifest>;
21
+ //# sourceMappingURL=hook-tx.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-tx.d.ts","sourceRoot":"","sources":["../../src/hook/hook-tx.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EACL,mBAAmB,EAOpB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,cAAc,EAAE,MAAM,GACrB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,mBAAmB,CAAC,CAQ9B;AAED,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,OAAO,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACnC,WAAW,EAAE,MAAM,EACnB,EACE,UAAU,EACV,QAAQ,GACT,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,GACA,OAAO,CAAC,mBAAmB,CAAC,CAiB9B;AAED,wBAAsB,+BAA+B,CACnD,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EACzB,WAAW,EAAE,MAAM,EACnB,EACE,UAAU,EACV,oBAAoB,GACrB,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE;YACT,iBAAiB,EAAE,MAAM,CAAC;YAC1B,QAAQ,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,GACA,OAAO,CAAC,mBAAmB,CAAC,CAqB9B"}
@@ -0,0 +1,26 @@
1
+ import { ValueKind, address, array, tuple, u32, u128, } from '@radixdlt/radix-engine-toolkit';
2
+ import { getComponentOwnershipInfo, getRadixComponentDetails, } from '../utils/base-query.js';
3
+ import { INSTRUCTIONS, RadixHookTypes } from '../utils/types.js';
4
+ export async function getCreateMerkleTreeHookTx(base, fromAddress, mailboxAddress) {
5
+ return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RadixHookTypes.MERKLE_TREE, INSTRUCTIONS.INSTANTIATE, [address(mailboxAddress)]);
6
+ }
7
+ export async function getCreateIgpTx(base, fromAddress, nativeTokenDenom) {
8
+ return base.createCallFunctionManifest(fromAddress, base.getHyperlanePackageDefAddress(), RadixHookTypes.IGP, INSTRUCTIONS.INSTANTIATE, [address(nativeTokenDenom)]);
9
+ }
10
+ export async function getSetIgpOwnerTx(base, gateway, fromAddress, { igpAddress, newOwner, }) {
11
+ const hookDetails = await getRadixComponentDetails(gateway, igpAddress, RadixHookTypes.IGP);
12
+ const ownershipInfo = getComponentOwnershipInfo(igpAddress, hookDetails);
13
+ const resourceAddress = ownershipInfo.rule.access_rule.proof_rule.requirement.resource;
14
+ return base.transfer({
15
+ from_address: fromAddress,
16
+ to_address: newOwner,
17
+ resource_address: resourceAddress,
18
+ amount: '1',
19
+ });
20
+ }
21
+ export async function getSetIgpDestinationGasConfigTx(base, fromAddress, { igpAddress, destinationGasConfig, }) {
22
+ return base.createCallMethodManifestWithOwner(fromAddress, igpAddress, 'set_destination_gas_configs', [
23
+ array(ValueKind.Tuple, tuple(u32(destinationGasConfig.remoteDomainId), tuple(tuple(u128(destinationGasConfig.gasOracle.tokenExchangeRate), u128(destinationGasConfig.gasOracle.gasPrice)), u128(destinationGasConfig.gasOverhead)))),
24
+ ]);
25
+ }
26
+ //# sourceMappingURL=hook-tx.js.map