@recoillink/radix-sdk 0.0.0-stage → 45.0.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 +31 -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 +60 -0
  8. package/dist/clients/provider.d.ts.map +1 -0
  9. package/dist/clients/provider.js +187 -0
  10. package/dist/clients/provider.js.map +1 -0
  11. package/dist/clients/signer.d.ts +24 -0
  12. package/dist/clients/signer.d.ts.map +1 -0
  13. package/dist/clients/signer.js +86 -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/runtime.d.ts +7 -0
  84. package/dist/runtime.d.ts.map +1 -0
  85. package/dist/runtime.js +6 -0
  86. package/dist/runtime.js.map +1 -0
  87. package/dist/testing/constants.d.ts +61 -0
  88. package/dist/testing/constants.d.ts.map +1 -0
  89. package/dist/testing/constants.js +65 -0
  90. package/dist/testing/constants.js.map +1 -0
  91. package/dist/testing/index.d.ts +8 -0
  92. package/dist/testing/index.d.ts.map +1 -0
  93. package/dist/testing/index.js +11 -0
  94. package/dist/testing/index.js.map +1 -0
  95. package/dist/testing/node.d.ts +13 -0
  96. package/dist/testing/node.d.ts.map +1 -0
  97. package/dist/testing/node.js +42 -0
  98. package/dist/testing/node.js.map +1 -0
  99. package/dist/testing/setup.d.ts +20 -0
  100. package/dist/testing/setup.d.ts.map +1 -0
  101. package/dist/testing/setup.js +57 -0
  102. package/dist/testing/setup.js.map +1 -0
  103. package/dist/tests/e2e-test.setup.d.ts +3 -0
  104. package/dist/tests/e2e-test.setup.d.ts.map +1 -0
  105. package/dist/tests/e2e-test.setup.js +32 -0
  106. package/dist/tests/e2e-test.setup.js.map +1 -0
  107. package/dist/tests/hook.e2e-test.d.ts +2 -0
  108. package/dist/tests/hook.e2e-test.d.ts.map +1 -0
  109. package/dist/tests/hook.e2e-test.js +374 -0
  110. package/dist/tests/hook.e2e-test.js.map +1 -0
  111. package/dist/tests/ism.e2e-test.d.ts +2 -0
  112. package/dist/tests/ism.e2e-test.d.ts.map +1 -0
  113. package/dist/tests/ism.e2e-test.js +256 -0
  114. package/dist/tests/ism.e2e-test.js.map +1 -0
  115. package/dist/tests/mailbox.e2e-test.d.ts +2 -0
  116. package/dist/tests/mailbox.e2e-test.d.ts.map +1 -0
  117. package/dist/tests/mailbox.e2e-test.js +250 -0
  118. package/dist/tests/mailbox.e2e-test.js.map +1 -0
  119. package/dist/tests/validator-announce.e2e-test.d.ts +2 -0
  120. package/dist/tests/validator-announce.e2e-test.d.ts.map +1 -0
  121. package/dist/tests/validator-announce.e2e-test.js +107 -0
  122. package/dist/tests/validator-announce.e2e-test.js.map +1 -0
  123. package/dist/tests/warp.e2e-test.d.ts +2 -0
  124. package/dist/tests/warp.e2e-test.d.ts.map +1 -0
  125. package/dist/tests/warp.e2e-test.js +597 -0
  126. package/dist/tests/warp.e2e-test.js.map +1 -0
  127. package/dist/utils/base-query.d.ts +188 -0
  128. package/dist/utils/base-query.d.ts.map +1 -0
  129. package/dist/utils/base-query.js +209 -0
  130. package/dist/utils/base-query.js.map +1 -0
  131. package/dist/utils/base.d.ts +67 -0
  132. package/dist/utils/base.d.ts.map +1 -0
  133. package/dist/utils/base.js +355 -0
  134. package/dist/utils/base.js.map +1 -0
  135. package/dist/utils/constants.d.ts +20 -0
  136. package/dist/utils/constants.d.ts.map +1 -0
  137. package/dist/utils/constants.js +20 -0
  138. package/dist/utils/constants.js.map +1 -0
  139. package/dist/utils/signer.d.ts +17 -0
  140. package/dist/utils/signer.d.ts.map +1 -0
  141. package/dist/utils/signer.js +60 -0
  142. package/dist/utils/signer.js.map +1 -0
  143. package/dist/utils/types.d.ts +141 -0
  144. package/dist/utils/types.d.ts.map +1 -0
  145. package/dist/utils/types.js +39 -0
  146. package/dist/utils/types.js.map +1 -0
  147. package/dist/utils/utils.d.ts +8 -0
  148. package/dist/utils/utils.d.ts.map +1 -0
  149. package/dist/utils/utils.js +47 -0
  150. package/dist/utils/utils.js.map +1 -0
  151. package/dist/utils/utils.test.d.ts +2 -0
  152. package/dist/utils/utils.test.d.ts.map +1 -0
  153. package/dist/utils/utils.test.js +27 -0
  154. package/dist/utils/utils.test.js.map +1 -0
  155. package/dist/validator-announce/validator-announce-artifact-manager.d.ts +14 -0
  156. package/dist/validator-announce/validator-announce-artifact-manager.d.ts.map +1 -0
  157. package/dist/validator-announce/validator-announce-artifact-manager.js +21 -0
  158. package/dist/validator-announce/validator-announce-artifact-manager.js.map +1 -0
  159. package/dist/validator-announce/validator-announce-query.d.ts +6 -0
  160. package/dist/validator-announce/validator-announce-query.d.ts.map +1 -0
  161. package/dist/validator-announce/validator-announce-query.js +10 -0
  162. package/dist/validator-announce/validator-announce-query.js.map +1 -0
  163. package/dist/validator-announce/validator-announce-tx.d.ts +4 -0
  164. package/dist/validator-announce/validator-announce-tx.d.ts.map +1 -0
  165. package/dist/validator-announce/validator-announce-tx.js +6 -0
  166. package/dist/validator-announce/validator-announce-tx.js.map +1 -0
  167. package/dist/validator-announce/validator-announce.d.ts +23 -0
  168. package/dist/validator-announce/validator-announce.d.ts.map +1 -0
  169. package/dist/validator-announce/validator-announce.js +52 -0
  170. package/dist/validator-announce/validator-announce.js.map +1 -0
  171. package/dist/warp/collateral-token.d.ts +23 -0
  172. package/dist/warp/collateral-token.d.ts.map +1 -0
  173. package/dist/warp/collateral-token.js +130 -0
  174. package/dist/warp/collateral-token.js.map +1 -0
  175. package/dist/warp/populate.d.ts +71 -0
  176. package/dist/warp/populate.d.ts.map +1 -0
  177. package/dist/warp/populate.js +110 -0
  178. package/dist/warp/populate.js.map +1 -0
  179. package/dist/warp/query.d.ts +44 -0
  180. package/dist/warp/query.d.ts.map +1 -0
  181. package/dist/warp/query.js +163 -0
  182. package/dist/warp/query.js.map +1 -0
  183. package/dist/warp/synthetic-token.d.ts +23 -0
  184. package/dist/warp/synthetic-token.d.ts.map +1 -0
  185. package/dist/warp/synthetic-token.js +131 -0
  186. package/dist/warp/synthetic-token.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 +74 -3
@@ -0,0 +1,355 @@
1
+ import { LTSRadixEngineToolkit, ManifestBuilder, ManifestSborStringRepresentation, RadixEngineToolkit, address, bucket, decimal, enumeration, expression, generateRandomNonce, } from '@radixdlt/radix-engine-toolkit';
2
+ import { BigNumber } from 'bignumber.js';
3
+ import { Decimal } from 'decimal.js';
4
+ import { assert } from '@recoillink/utils';
5
+ import { EPOCH_VALIDITY_RANGE, READ_ACCOUNT_HEX_PUBLIC_KEY, } from './constants.js';
6
+ import { INSTRUCTIONS } from './types.js';
7
+ import { stringToTransactionManifest } from './utils.js';
8
+ export class RadixBase {
9
+ networkId;
10
+ gateway;
11
+ gasMultiplier;
12
+ hyperlanePackageDefAddress;
13
+ constructor(networkId, gateway, gasMultiplier, hyperlanePackageDefAddress) {
14
+ this.networkId = networkId;
15
+ this.gateway = gateway;
16
+ this.gasMultiplier = gasMultiplier;
17
+ this.hyperlanePackageDefAddress = hyperlanePackageDefAddress;
18
+ }
19
+ getNetworkId() {
20
+ return this.networkId;
21
+ }
22
+ async getXrdAddress() {
23
+ const knownAddresses = await LTSRadixEngineToolkit.Derive.knownAddresses(this.networkId);
24
+ return knownAddresses.resources.xrdResource;
25
+ }
26
+ getHyperlanePackageDefAddress() {
27
+ return this.hyperlanePackageDefAddress;
28
+ }
29
+ async isGatewayHealthy() {
30
+ const status = await this.gateway.status.getCurrent();
31
+ return status.ledger_state.state_version > 0;
32
+ }
33
+ // Code adapted from:
34
+ // https://github.com/radixdlt/typescript-radix-engine-toolkit/blob/34f04995ef897d3f2a672a6373eea4b379afc793/src/lts/builders.ts#L122
35
+ async createXrdFaucetTransactionManifest(toAccount, amount = 10000) {
36
+ const knownAddresses = await LTSRadixEngineToolkit.Derive.knownAddresses(this.networkId);
37
+ const faucetComponentAddress = knownAddresses.components.faucet;
38
+ const xrdResourceAddress = knownAddresses.resources.xrdResource;
39
+ return new ManifestBuilder()
40
+ .callMethod(faucetComponentAddress, 'lock_fee', [decimal('10')])
41
+ .callMethod(faucetComponentAddress, 'free', [])
42
+ .takeFromWorktop(xrdResourceAddress, new Decimal(amount), (builder, bucketId) => {
43
+ return builder.callMethod(toAccount, 'try_deposit_or_abort', [
44
+ bucket(bucketId),
45
+ enumeration(0),
46
+ ]);
47
+ })
48
+ .build();
49
+ }
50
+ async getStateVersion() {
51
+ const status = await this.gateway.status.getCurrent();
52
+ return status.ledger_state.state_version;
53
+ }
54
+ async estimateTransactionFee({ transactionManifest, }) {
55
+ const constructionMetadata = await this.gateway.transaction.innerClient.transactionConstruction();
56
+ const manifest = typeof transactionManifest === 'string'
57
+ ? transactionManifest
58
+ : (await RadixEngineToolkit.Instructions.convert(transactionManifest.instructions, this.networkId, 'String')).value;
59
+ const response = await this.gateway.transaction.innerClient.transactionPreview({
60
+ transactionPreviewRequest: {
61
+ manifest,
62
+ nonce: generateRandomNonce(),
63
+ signer_public_keys: [
64
+ {
65
+ key_type: 'EddsaEd25519',
66
+ key_hex: READ_ACCOUNT_HEX_PUBLIC_KEY,
67
+ },
68
+ ],
69
+ flags: {
70
+ use_free_credit: true,
71
+ // we have to enable this flag because the signer of the tx is a random pk
72
+ // this allows us to simulate txs for different addresses - even if we don't have accesse to their public key
73
+ assume_all_signature_proofs: true,
74
+ },
75
+ start_epoch_inclusive: constructionMetadata.ledger_state.epoch,
76
+ end_epoch_exclusive: constructionMetadata.ledger_state.epoch + EPOCH_VALIDITY_RANGE,
77
+ },
78
+ });
79
+ assert(!response.receipt.error_message, `${response.receipt.error_message}`);
80
+ const fee_summary = response.receipt.fee_summary;
81
+ const costing_parameters = response.receipt
82
+ .costing_parameters;
83
+ const gasUnits = BigInt(fee_summary.execution_cost_units_consumed) +
84
+ BigInt(fee_summary.finalization_cost_units_consumed);
85
+ const fee = BigInt(new BigNumber(fee_summary.xrd_total_execution_cost)
86
+ .plus(BigNumber(fee_summary.xrd_total_finalization_cost))
87
+ .plus(BigNumber(fee_summary.xrd_total_storage_cost))
88
+ .times(new BigNumber(10).exponentiatedBy(18))
89
+ .toFixed(0));
90
+ const gasPrice = (parseFloat(costing_parameters.execution_cost_unit_price) +
91
+ parseFloat(costing_parameters.finalization_cost_unit_price)) *
92
+ 0.5; // average out the cost parameters to get a more accurate estimate
93
+ return {
94
+ gasUnits,
95
+ fee,
96
+ gasPrice,
97
+ };
98
+ }
99
+ async getMetadata({ resource }) {
100
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(resource);
101
+ const result = {
102
+ name: details.metadata.items.find((i) => i.key === 'name')?.value
103
+ ?.typed?.value ?? '',
104
+ symbol: details.metadata.items.find((i) => i.key === 'symbol')?.value
105
+ ?.typed?.value ?? '',
106
+ description: details.metadata.items.find((i) => i.key === 'description')?.value
107
+ ?.typed?.value ?? '',
108
+ decimals: details.details.divisibility,
109
+ };
110
+ return result;
111
+ }
112
+ async getXrdMetadata() {
113
+ const xrdAddress = await this.getXrdAddress();
114
+ return this.getMetadata({ resource: xrdAddress });
115
+ }
116
+ async getBalance({ address, resource, }) {
117
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(address);
118
+ const fungibleResource = details.fungible_resources.items.find((r) => r.resource_address === resource);
119
+ if (!fungibleResource) {
120
+ return BigInt(0);
121
+ }
122
+ if (fungibleResource.vaults.items.length !== 1) {
123
+ return BigInt(0);
124
+ }
125
+ const [vault] = fungibleResource.vaults.items;
126
+ assert(vault, `Expected a vault for resource ${resource}`);
127
+ const { decimals } = await this.getMetadata({ resource });
128
+ return BigInt(new BigNumber(vault.amount)
129
+ .times(new BigNumber(10).exponentiatedBy(decimals))
130
+ .toFixed(0));
131
+ }
132
+ async getXrdBalance({ address, }) {
133
+ const xrdAddress = await this.getXrdAddress();
134
+ return this.getBalance({ address, resource: xrdAddress });
135
+ }
136
+ async getTotalSupply({ resource, }) {
137
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(resource);
138
+ const { decimals } = await this.getMetadata({ resource });
139
+ return BigInt(new BigNumber(details.details.total_supply)
140
+ .times(new BigNumber(10).exponentiatedBy(decimals))
141
+ .toFixed(0));
142
+ }
143
+ async getXrdTotalSupply() {
144
+ const xrdAddress = await this.getXrdAddress();
145
+ return this.getTotalSupply({ resource: xrdAddress });
146
+ }
147
+ async pollForCommit(intentHashTransactionId) {
148
+ // we try to poll for 2 minutes
149
+ const pollAttempts = 120;
150
+ const pollDelayMs = 1000;
151
+ for (let i = 0; i < pollAttempts; i++) {
152
+ let statusOutput;
153
+ try {
154
+ statusOutput =
155
+ await this.gateway.transaction.innerClient.transactionStatus({
156
+ transactionStatusRequest: { intent_hash: intentHashTransactionId },
157
+ });
158
+ }
159
+ catch {
160
+ await new Promise((resolve) => setTimeout(resolve, pollDelayMs));
161
+ continue;
162
+ }
163
+ switch (statusOutput.intent_status) {
164
+ case 'Pending': {
165
+ await new Promise((resolve) => setTimeout(resolve, pollDelayMs));
166
+ continue;
167
+ }
168
+ case 'LikelyButNotCertainRejection': {
169
+ if (statusOutput.error_message) {
170
+ throw new Error(`Transaction ${intentHashTransactionId} was not committed successfully - instead it resulted in: ${statusOutput.intent_status} with description: ${statusOutput.error_message}`);
171
+ }
172
+ await new Promise((resolve) => setTimeout(resolve, pollDelayMs));
173
+ continue;
174
+ }
175
+ case 'CommittedSuccess': {
176
+ try {
177
+ const committedDetails = await this.gateway.transaction.getCommittedDetails(intentHashTransactionId);
178
+ return {
179
+ ...committedDetails,
180
+ transactionHash: intentHashTransactionId,
181
+ };
182
+ }
183
+ catch {
184
+ await new Promise((resolve) => setTimeout(resolve, pollDelayMs));
185
+ continue;
186
+ }
187
+ }
188
+ case 'CommittedFailure': {
189
+ // You will typically wish to build a new transaction and try again.
190
+ throw new Error(`Transaction ${intentHashTransactionId} was not committed successfully - instead it resulted in: ${statusOutput.intent_status} with description: ${statusOutput.error_message}`);
191
+ }
192
+ case 'CommitPendingOutcomeUnknown': {
193
+ // We keep polling
194
+ if (i < pollAttempts) {
195
+ await new Promise((resolve) => setTimeout(resolve, pollDelayMs));
196
+ }
197
+ else {
198
+ throw new Error(`Transaction ${intentHashTransactionId} was not committed successfully within ${pollAttempts} poll attempts over ${pollAttempts * pollDelayMs}ms - instead it resulted in STATUS: ${statusOutput.intent_status} DESCRIPTION: ${statusOutput.intent_status_description}`);
199
+ }
200
+ }
201
+ }
202
+ }
203
+ throw new Error(`reached poll limit of ${pollAttempts} attempts`);
204
+ }
205
+ async getNewComponent(receipt) {
206
+ const r = receipt.transaction.receipt;
207
+ assert(r, `found no receipt on transaction: ${receipt.transactionHash}`);
208
+ const newGlobalGenericComponent = r.state_updates.new_global_entities.find((entity) => entity.entity_type === 'GlobalGenericComponent');
209
+ assert(newGlobalGenericComponent, `found no newly created component on transaction: ${receipt.transactionHash}`);
210
+ return newGlobalGenericComponent.entity_address;
211
+ }
212
+ async createCallFunctionManifest(from_address, package_address, blueprint_name, function_name, args) {
213
+ const simulationManifest = new ManifestBuilder()
214
+ .callMethod(from_address, INSTRUCTIONS.LOCK_FEE, [decimal(0)])
215
+ .callFunction(package_address, blueprint_name, function_name, args)
216
+ .callMethod(from_address, INSTRUCTIONS.TRY_DEPOSIT_BATCH_OR_ABORT, [
217
+ expression('EntireWorktop'),
218
+ enumeration(0),
219
+ ])
220
+ .build();
221
+ const { fee } = await this.estimateTransactionFee({
222
+ transactionManifest: simulationManifest,
223
+ });
224
+ return new ManifestBuilder()
225
+ .callMethod(from_address, INSTRUCTIONS.LOCK_FEE, [
226
+ decimal(new BigNumber(fee.toString())
227
+ .times(this.gasMultiplier)
228
+ .dividedBy(new BigNumber(10).exponentiatedBy(18))
229
+ .toFixed()),
230
+ ])
231
+ .callFunction(package_address, blueprint_name, function_name, args)
232
+ .callMethod(from_address, INSTRUCTIONS.TRY_DEPOSIT_BATCH_OR_ABORT, [
233
+ expression('EntireWorktop'),
234
+ enumeration(0),
235
+ ])
236
+ .build();
237
+ }
238
+ async createCallMethodManifestWithOwner(from_address, contract_address, method_name, args) {
239
+ const details = await this.gateway.state.getEntityDetailsVaultAggregated(contract_address);
240
+ const ownerResource = details.details.role_assignments
241
+ .owner.rule.access_rule.proof_rule.requirement.resource;
242
+ const simulationManifest = new ManifestBuilder()
243
+ .callMethod(from_address, INSTRUCTIONS.LOCK_FEE, [decimal(0)])
244
+ .callMethod(from_address, INSTRUCTIONS.CREATE_PROOF_OF_AMOUNT, [
245
+ address(ownerResource),
246
+ decimal(1),
247
+ ])
248
+ .callMethod(contract_address, method_name, args)
249
+ .callMethod(from_address, INSTRUCTIONS.TRY_DEPOSIT_BATCH_OR_ABORT, [
250
+ expression('EntireWorktop'),
251
+ enumeration(0),
252
+ ])
253
+ .build();
254
+ const { fee } = await this.estimateTransactionFee({
255
+ transactionManifest: simulationManifest,
256
+ });
257
+ return new ManifestBuilder()
258
+ .callMethod(from_address, INSTRUCTIONS.LOCK_FEE, [
259
+ decimal(new BigNumber(fee.toString())
260
+ .times(this.gasMultiplier)
261
+ .dividedBy(new BigNumber(10).exponentiatedBy(18))
262
+ .toFixed()),
263
+ ])
264
+ .callMethod(from_address, INSTRUCTIONS.CREATE_PROOF_OF_AMOUNT, [
265
+ address(ownerResource),
266
+ decimal(1),
267
+ ])
268
+ .callMethod(contract_address, method_name, args)
269
+ .callMethod(from_address, INSTRUCTIONS.TRY_DEPOSIT_BATCH_OR_ABORT, [
270
+ expression('EntireWorktop'),
271
+ enumeration(0),
272
+ ])
273
+ .build();
274
+ }
275
+ async transfer({ from_address, to_address, resource_address, amount, }) {
276
+ const simulationManifest = new ManifestBuilder()
277
+ .callMethod(from_address, INSTRUCTIONS.LOCK_FEE, [decimal(0)])
278
+ .callMethod(from_address, INSTRUCTIONS.WITHDRAW, [
279
+ address(resource_address),
280
+ decimal(amount),
281
+ ])
282
+ .takeFromWorktop(resource_address, new Decimal(amount), (builder, bucketId) => builder.callMethod(to_address, INSTRUCTIONS.TRY_DEPOSIT_OR_ABORT, [
283
+ bucket(bucketId),
284
+ enumeration(0),
285
+ ]))
286
+ .build();
287
+ const { fee } = await this.estimateTransactionFee({
288
+ transactionManifest: simulationManifest,
289
+ });
290
+ return new ManifestBuilder()
291
+ .callMethod(from_address, INSTRUCTIONS.LOCK_FEE, [
292
+ decimal(new BigNumber(fee.toString())
293
+ .times(this.gasMultiplier)
294
+ .dividedBy(new BigNumber(10).exponentiatedBy(18))
295
+ .toFixed()),
296
+ ])
297
+ .callMethod(from_address, INSTRUCTIONS.WITHDRAW, [
298
+ address(resource_address),
299
+ decimal(amount),
300
+ ])
301
+ .takeFromWorktop(resource_address, new Decimal(amount), (builder, bucketId) => builder.callMethod(to_address, INSTRUCTIONS.TRY_DEPOSIT_OR_ABORT, [
302
+ bucket(bucketId),
303
+ enumeration(0),
304
+ ]))
305
+ .build();
306
+ }
307
+ // TS implementation of the publish_package_advanced method as it is not exposed/implemented in the TS Radix toolkit SDK
308
+ // see: https://github.com/radixdlt/radixdlt-scrypto/blob/92c7db3e1bf79f99abaa9e1217451548d3feb63d/radix-transactions/src/builder/manifest_builder.rs#L1484-L1507
309
+ async createPublishPackageManifest(params) {
310
+ const { from_address, code, packageDefinition } = params;
311
+ // This should be the manifest representation of the package definition
312
+ const decodedManifestPackageDefinition = await RadixEngineToolkit.ManifestSbor.decodeToString(packageDefinition, this.networkId, ManifestSborStringRepresentation.ManifestString);
313
+ // Using the hash method from the radix toolkit package
314
+ // as it uses the blake32 algorithm
315
+ // see:
316
+ // - https://github.com/radixdlt/radixdlt-scrypto/blob/92c7db3e1bf79f99abaa9e1217451548d3feb63d/radix-common/src/crypto/hash.rs#L69-L71
317
+ const codeHashHex = Buffer.from(LTSRadixEngineToolkit.Utils.hash(code)).toString('hex');
318
+ // The arguments of the PUBLISH_PACKAGE_ADVANCED function are:
319
+ // owner rule definition
320
+ // package definition
321
+ // blake32 hash of the compiled code
322
+ // metadata
323
+ // Address reservation for the published package
324
+ // see: https://docs.radixdlt.com/docs/manifest-instructions#:~:text=COPY-,PUBLISH_PACKAGE_ADVANCED,-(alias)
325
+ const manifestString = `
326
+ CALL_METHOD
327
+ Address("${from_address}")
328
+ "lock_fee"
329
+ Decimal("160");
330
+
331
+ PUBLISH_PACKAGE_ADVANCED
332
+ Enum<0u8>()
333
+ ${decodedManifestPackageDefinition}
334
+ Blob("${codeHashHex}")
335
+ Map<String, Tuple>()
336
+ Enum<0u8>();
337
+
338
+ CALL_METHOD
339
+ Address("${from_address}")
340
+ "try_deposit_batch_or_abort"
341
+ Expression("ENTIRE_WORKTOP")
342
+ Enum<0u8>();
343
+ `;
344
+ const manifest = await stringToTransactionManifest(manifestString, this.networkId);
345
+ // Workaround to access the private blobs property as the
346
+ // TransactionManifestBuilder does not expose a method for
347
+ // registering a blob as the Rust implementation does
348
+ // see:
349
+ // - https://github.com/radixdlt/radixdlt-scrypto/blob/92c7db3e1bf79f99abaa9e1217451548d3feb63d/radix-transactions/src/builder/manifest_builder.rs#L1484-L1507
350
+ // - https://github.com/radixdlt/radixdlt-scrypto/blob/92c7db3e1bf79f99abaa9e1217451548d3feb63d/radix-transactions/src/builder/manifest_builder.rs#L333-L336
351
+ manifest['blobs'].push(code);
352
+ return manifest;
353
+ }
354
+ }
355
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/utils/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Radix public key to be used for read/simulation in contexts where a
3
+ * signer is not available.
4
+ *
5
+ * Generated using:
6
+ * ```typescript
7
+ *
8
+ * const pk = new PrivateKey.Ed25519(new Uint8Array(randomBytes(32)));
9
+ * const pubKey = pk.publicKeyHex()
10
+ * ```
11
+ */
12
+ export declare const READ_ACCOUNT_HEX_PUBLIC_KEY = "4e87d816766ad391ed7e91e09395b5ff1d899be0b94df63f6f2301acf7966dbc";
13
+ /**
14
+ * Number of epochs a transaction remains valid after construction.
15
+ * Each Radix epoch is ~5 minutes, so 10 epochs gives ~50 min validity.
16
+ * A larger window prevents TransactionEpochNoLongerValid errors when
17
+ * there is latency between transaction construction and submission.
18
+ */
19
+ export declare const EPOCH_VALIDITY_RANGE = 10;
20
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,qEAC4B,CAAC;AAErE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Radix public key to be used for read/simulation in contexts where a
3
+ * signer is not available.
4
+ *
5
+ * Generated using:
6
+ * ```typescript
7
+ *
8
+ * const pk = new PrivateKey.Ed25519(new Uint8Array(randomBytes(32)));
9
+ * const pubKey = pk.publicKeyHex()
10
+ * ```
11
+ */
12
+ export const READ_ACCOUNT_HEX_PUBLIC_KEY = '4e87d816766ad391ed7e91e09395b5ff1d899be0b94df63f6f2301acf7966dbc';
13
+ /**
14
+ * Number of epochs a transaction remains valid after construction.
15
+ * Each Radix epoch is ~5 minutes, so 10 epochs gives ~50 min validity.
16
+ * A larger window prevents TransactionEpochNoLongerValid errors when
17
+ * there is latency between transaction construction and submission.
18
+ */
19
+ export const EPOCH_VALIDITY_RANGE = 10;
20
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,2BAA2B,GACtC,kEAAkE,CAAC;AAErE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { GatewayApiClient } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { TransactionManifest } from '@radixdlt/radix-engine-toolkit';
3
+ import { RadixBase } from './base.js';
4
+ import { Account, RadixSDKReceipt } from './types.js';
5
+ export declare class RadixBaseSigner {
6
+ protected networkId: number;
7
+ protected gateway: GatewayApiClient;
8
+ protected base: RadixBase;
9
+ protected account: Account;
10
+ constructor(networkId: number, gateway: GatewayApiClient, base: RadixBase, account: Account);
11
+ getAddress(): string;
12
+ signAndBroadcast(manifest: TransactionManifest): Promise<RadixSDKReceipt>;
13
+ getTestnetXrd(): Promise<string>;
14
+ private signIntent;
15
+ private notarizeIntent;
16
+ }
17
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/utils/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAOL,mBAAmB,EAEpB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEtD,qBAAa,eAAe;IAC1B,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACpC,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC;IAC1B,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAE3B,YACE,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAMjB;IAEM,UAAU,IAAI,MAAM,CAE1B;IAEY,gBAAgB,CAC3B,QAAQ,EAAE,mBAAmB,GAC5B,OAAO,CAAC,eAAe,CAAC,CAsC1B;IAEY,aAAa,oBAUzB;IAED,OAAO,CAAC,UAAU,CAEhB;IAEF,OAAO,CAAC,cAAc,CAEpB;CACH"}
@@ -0,0 +1,60 @@
1
+ import { RadixEngineToolkit, TransactionBuilder, generateRandomNonce, } from '@radixdlt/radix-engine-toolkit';
2
+ import { EPOCH_VALIDITY_RANGE } from './constants.js';
3
+ export class RadixBaseSigner {
4
+ networkId;
5
+ gateway;
6
+ base;
7
+ account;
8
+ constructor(networkId, gateway, base, account) {
9
+ this.networkId = networkId;
10
+ this.gateway = gateway;
11
+ this.base = base;
12
+ this.account = account;
13
+ }
14
+ getAddress() {
15
+ return this.account.address;
16
+ }
17
+ async signAndBroadcast(manifest) {
18
+ // transaction builder from official example:
19
+ // https://github.com/radixdlt/typescript-radix-engine-toolkit?tab=readme-ov-file#constructing-transactions
20
+ const constructionMetadata = await this.gateway.transaction.innerClient.transactionConstruction();
21
+ const transactionHeader = {
22
+ networkId: this.networkId,
23
+ startEpochInclusive: constructionMetadata.ledger_state.epoch,
24
+ endEpochExclusive: constructionMetadata.ledger_state.epoch + EPOCH_VALIDITY_RANGE,
25
+ nonce: generateRandomNonce(),
26
+ notaryPublicKey: this.account.publicKey,
27
+ notaryIsSignatory: true,
28
+ tipPercentage: 0,
29
+ };
30
+ const builder = await TransactionBuilder.new();
31
+ const transaction = await builder
32
+ .header(transactionHeader)
33
+ .manifest(manifest)
34
+ .sign(this.signIntent)
35
+ .notarize(this.notarizeIntent);
36
+ const compiledNotarizedTransaction = await RadixEngineToolkit.NotarizedTransaction.compile(transaction);
37
+ const intentHashTransactionId = await RadixEngineToolkit.NotarizedTransaction.intentHash(transaction);
38
+ await this.gateway.transaction.innerClient.transactionSubmit({
39
+ transactionSubmitRequest: {
40
+ notarized_transaction_hex: Buffer.from(compiledNotarizedTransaction).toString('hex'),
41
+ },
42
+ });
43
+ return this.base.pollForCommit(intentHashTransactionId.id);
44
+ }
45
+ async getTestnetXrd() {
46
+ // Creating a transaction manifest instead of using the freeXrdFromFaucet
47
+ // method from the radix sdk as the starting epoch from which the transaction is valid
48
+ // might expire before the transaction is sent on chain
49
+ const manifest = await this.base.createXrdFaucetTransactionManifest(this.account.address);
50
+ const receipt = await this.signAndBroadcast(manifest);
51
+ return receipt.transactionHash;
52
+ }
53
+ signIntent = (hashToSign) => {
54
+ return this.account.privateKey.signToSignatureWithPublicKey(hashToSign);
55
+ };
56
+ notarizeIntent = (hashToSign) => {
57
+ return this.account.privateKey.signToSignature(hashToSign);
58
+ };
59
+ }
60
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/utils/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ import { TransactionCommittedDetailsResponse } from '@radixdlt/babylon-gateway-api-sdk';
2
+ import { PrivateKey, PublicKey, TransactionManifest } from '@radixdlt/radix-engine-toolkit';
3
+ import { ChainMetadataForAltVM } from '@recoillink/provider-sdk/chain';
4
+ import { Annotated } from '@recoillink/utils';
5
+ export interface RadixSDKTransaction {
6
+ networkId: number;
7
+ manifest: TransactionManifest | string;
8
+ }
9
+ export type AnnotatedRadixTransaction = Annotated<RadixSDKTransaction>;
10
+ export interface RadixSDKReceipt extends TransactionCommittedDetailsResponse {
11
+ transactionHash: string;
12
+ }
13
+ export declare enum INSTRUCTIONS {
14
+ LOCK_FEE = "lock_fee",
15
+ INSTANTIATE = "instantiate",
16
+ WITHDRAW = "withdraw",
17
+ TRY_DEPOSIT_BATCH_OR_ABORT = "try_deposit_batch_or_abort",
18
+ TRY_DEPOSIT_OR_ABORT = "try_deposit_or_abort",
19
+ CREATE_PROOF_OF_AMOUNT = "create_proof_of_amount"
20
+ }
21
+ export type Account = {
22
+ privateKey: PrivateKey;
23
+ publicKey: PublicKey;
24
+ address: string;
25
+ };
26
+ export interface RadixSDKOptions {
27
+ networkId?: number;
28
+ gasMultiplier?: number;
29
+ rpcUrls: string[];
30
+ gatewayUrls?: string[];
31
+ packageAddress?: string;
32
+ chainMetadata: ChainMetadataForAltVM;
33
+ }
34
+ export interface MultisigIsmReq {
35
+ validators: string[];
36
+ threshold: number;
37
+ }
38
+ export declare enum RadixIsmTypes {
39
+ MERKLE_ROOT_MULTISIG = "MerkleRootMultisigIsm",
40
+ MESSAGE_ID_MULTISIG = "MessageIdMultisigIsm",
41
+ ROUTING_ISM = "RoutingIsm",
42
+ NOOP_ISM = "NoopIsm"
43
+ }
44
+ export type MultisigIsms = RadixIsmTypes.MERKLE_ROOT_MULTISIG | RadixIsmTypes.MESSAGE_ID_MULTISIG;
45
+ export declare enum RadixHookTypes {
46
+ IGP = "InterchainGasPaymaster",
47
+ MERKLE_TREE = "MerkleTreeHook"
48
+ }
49
+ export declare const RADIX_COMPONENT_NAMES: {
50
+ readonly HYP_TOKEN: 'HypToken';
51
+ };
52
+ export declare const RADIX_WARP_TOKEN_FIELD_NAMES: {
53
+ readonly TOKEN_TYPE: 'token_type';
54
+ readonly MAILBOX: 'mailbox';
55
+ readonly ISM: 'ism';
56
+ readonly ENROLLED_ROUTERS: 'enrolled_routers';
57
+ readonly RESOURCE_MANAGER: 'resource_manager';
58
+ readonly RECIPIENT: 'recipient';
59
+ readonly GAS: 'gas';
60
+ };
61
+ export declare const RadixWarpTokenType: {
62
+ readonly COLLATERAL: 'Collateral';
63
+ readonly SYNTHETIC: 'Synthetic';
64
+ };
65
+ export type RadixWarpTokenType = (typeof RadixWarpTokenType)[keyof typeof RadixWarpTokenType];
66
+ export interface BaseRadixWarpTokenConfig<TType extends RadixWarpTokenType> {
67
+ owner: string;
68
+ mailbox: string;
69
+ interchainSecurityModule?: string;
70
+ remoteRouters: Record<number, {
71
+ address: string;
72
+ }>;
73
+ destinationGas: Record<number, string>;
74
+ name?: string;
75
+ symbol?: string;
76
+ decimals?: number;
77
+ type: TType;
78
+ }
79
+ export interface RadixSyntheticWarpTokenConfig extends BaseRadixWarpTokenConfig<'Synthetic'> {
80
+ name: string;
81
+ symbol: string;
82
+ decimals: number;
83
+ }
84
+ export interface RadixCollateralWarpTokenConfig extends BaseRadixWarpTokenConfig<'Collateral'> {
85
+ token: string;
86
+ }
87
+ export type RadixWarpTokenConfig = RadixSyntheticWarpTokenConfig | RadixCollateralWarpTokenConfig;
88
+ export interface RadixElement {
89
+ kind: string;
90
+ type_name: string;
91
+ element_kind: string;
92
+ hex: string;
93
+ }
94
+ export interface EntityField {
95
+ field_name: string;
96
+ type_name: string;
97
+ variant_name?: string;
98
+ value?: any;
99
+ elements?: RadixElement[];
100
+ fields?: EntityField[];
101
+ hex?: string;
102
+ kind: string;
103
+ }
104
+ export interface EntityDetails {
105
+ blueprint_name: string;
106
+ state: {
107
+ fields: EntityField[];
108
+ };
109
+ role_assignments: {
110
+ owner: {
111
+ rule: {
112
+ access_rule: {
113
+ proof_rule: {
114
+ requirement: {
115
+ resource: string;
116
+ };
117
+ };
118
+ };
119
+ };
120
+ };
121
+ };
122
+ }
123
+ export interface Receipt {
124
+ output: {
125
+ programmatic_json: {
126
+ entries: {
127
+ key: {
128
+ value: any;
129
+ };
130
+ value: {
131
+ value: any;
132
+ };
133
+ }[];
134
+ } | {
135
+ kind: string;
136
+ value: any;
137
+ };
138
+ }[];
139
+ error_message?: string;
140
+ }
141
+ //# sourceMappingURL=types.d.ts.map