@centrifuge/sdk 1.9.1 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/dist/Centrifuge.d.ts +1388 -5229
  2. package/dist/Centrifuge.d.ts.map +1 -1
  3. package/dist/Centrifuge.js +163 -0
  4. package/dist/Centrifuge.js.map +1 -1
  5. package/dist/Centrifuge.test.js +219 -0
  6. package/dist/Centrifuge.test.js.map +1 -1
  7. package/dist/abi/MultiAdapter.abi.d.ts +1 -1
  8. package/dist/abi/MultiAdapter.abi.js +1 -1
  9. package/dist/abi/MultiAdapter.abi.js.map +1 -1
  10. package/dist/abi/OnchainPM.abi.d.ts +3 -0
  11. package/dist/abi/OnchainPM.abi.d.ts.map +1 -0
  12. package/dist/abi/OnchainPM.abi.js +14 -0
  13. package/dist/abi/OnchainPM.abi.js.map +1 -0
  14. package/dist/abi/OnchainPMFactory.abi.d.ts +3 -0
  15. package/dist/abi/OnchainPMFactory.abi.d.ts.map +1 -0
  16. package/dist/abi/OnchainPMFactory.abi.js +6 -0
  17. package/dist/abi/OnchainPMFactory.abi.js.map +1 -0
  18. package/dist/abi/OracleValuation.abi.d.ts +3 -0
  19. package/dist/abi/OracleValuation.abi.d.ts.map +1 -0
  20. package/dist/abi/OracleValuation.abi.js +9 -0
  21. package/dist/abi/OracleValuation.abi.js.map +1 -0
  22. package/dist/abi/ScriptHelpers.abi.d.ts +3 -0
  23. package/dist/abi/ScriptHelpers.abi.d.ts.map +1 -0
  24. package/dist/abi/ScriptHelpers.abi.js +5 -0
  25. package/dist/abi/ScriptHelpers.abi.js.map +1 -0
  26. package/dist/abi/index.d.ts +281 -0
  27. package/dist/abi/index.d.ts.map +1 -1
  28. package/dist/abi/index.js +8 -0
  29. package/dist/abi/index.js.map +1 -1
  30. package/dist/config/chains.d.ts +38 -9
  31. package/dist/config/chains.d.ts.map +1 -1
  32. package/dist/entities/OnchainPM.d.ts +203 -0
  33. package/dist/entities/OnchainPM.d.ts.map +1 -0
  34. package/dist/entities/OnchainPM.js +315 -0
  35. package/dist/entities/OnchainPM.js.map +1 -0
  36. package/dist/entities/OnchainPM.test.d.ts +2 -0
  37. package/dist/entities/OnchainPM.test.d.ts.map +1 -0
  38. package/dist/entities/OnchainPM.test.js +155 -0
  39. package/dist/entities/OnchainPM.test.js.map +1 -0
  40. package/dist/entities/Pool.d.ts +81 -3
  41. package/dist/entities/Pool.d.ts.map +1 -1
  42. package/dist/entities/Pool.js +207 -18
  43. package/dist/entities/Pool.js.map +1 -1
  44. package/dist/entities/PoolNetwork.d.ts +37 -0
  45. package/dist/entities/PoolNetwork.d.ts.map +1 -1
  46. package/dist/entities/PoolNetwork.js +136 -12
  47. package/dist/entities/PoolNetwork.js.map +1 -1
  48. package/dist/entities/PoolNetwork.test.js +134 -1
  49. package/dist/entities/PoolNetwork.test.js.map +1 -1
  50. package/dist/entities/ShareClass.d.ts.map +1 -1
  51. package/dist/entities/ShareClass.js +68 -74
  52. package/dist/entities/ShareClass.js.map +1 -1
  53. package/dist/entities/crosschainMessages.d.ts +127 -0
  54. package/dist/entities/crosschainMessages.d.ts.map +1 -0
  55. package/dist/entities/crosschainMessages.js +204 -0
  56. package/dist/entities/crosschainMessages.js.map +1 -0
  57. package/dist/index.d.ts +16 -1
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +8 -0
  60. package/dist/index.js.map +1 -1
  61. package/dist/types/index.d.ts +3 -0
  62. package/dist/types/index.d.ts.map +1 -1
  63. package/dist/types/poolMetadata.d.ts +28 -0
  64. package/dist/types/poolMetadata.d.ts.map +1 -1
  65. package/dist/types/transaction.d.ts +5 -1
  66. package/dist/types/transaction.d.ts.map +1 -1
  67. package/dist/types/transaction.js.map +1 -1
  68. package/dist/types/workflow.d.ts +151 -0
  69. package/dist/types/workflow.d.ts.map +1 -0
  70. package/dist/types/workflow.js +5 -0
  71. package/dist/types/workflow.js.map +1 -0
  72. package/dist/utils/catalog.d.ts +29 -0
  73. package/dist/utils/catalog.d.ts.map +1 -0
  74. package/dist/utils/catalog.js +396 -0
  75. package/dist/utils/catalog.js.map +1 -0
  76. package/dist/utils/catalog.test.d.ts +2 -0
  77. package/dist/utils/catalog.test.d.ts.map +1 -0
  78. package/dist/utils/catalog.test.js +291 -0
  79. package/dist/utils/catalog.test.js.map +1 -0
  80. package/dist/utils/scriptHash.d.ts +32 -0
  81. package/dist/utils/scriptHash.d.ts.map +1 -0
  82. package/dist/utils/scriptHash.js +67 -0
  83. package/dist/utils/scriptHash.js.map +1 -0
  84. package/dist/utils/scriptHash.test.d.ts +2 -0
  85. package/dist/utils/scriptHash.test.d.ts.map +1 -0
  86. package/dist/utils/scriptHash.test.js +97 -0
  87. package/dist/utils/scriptHash.test.js.map +1 -0
  88. package/dist/utils/variables.d.ts +78 -0
  89. package/dist/utils/variables.d.ts.map +1 -0
  90. package/dist/utils/variables.js +105 -0
  91. package/dist/utils/variables.js.map +1 -0
  92. package/dist/utils/variables.test.d.ts +2 -0
  93. package/dist/utils/variables.test.d.ts.map +1 -0
  94. package/dist/utils/variables.test.js +110 -0
  95. package/dist/utils/variables.test.js.map +1 -0
  96. package/dist/utils/weiroll.d.ts +176 -0
  97. package/dist/utils/weiroll.d.ts.map +1 -0
  98. package/dist/utils/weiroll.js +341 -0
  99. package/dist/utils/weiroll.js.map +1 -0
  100. package/dist/utils/weiroll.test.d.ts +2 -0
  101. package/dist/utils/weiroll.test.d.ts.map +1 -0
  102. package/dist/utils/weiroll.test.js +430 -0
  103. package/dist/utils/weiroll.test.js.map +1 -0
  104. package/dist/utils/workflowExecute.d.ts +121 -0
  105. package/dist/utils/workflowExecute.d.ts.map +1 -0
  106. package/dist/utils/workflowExecute.js +577 -0
  107. package/dist/utils/workflowExecute.js.map +1 -0
  108. package/dist/utils/workflowExecute.test.d.ts +2 -0
  109. package/dist/utils/workflowExecute.test.d.ts.map +1 -0
  110. package/dist/utils/workflowExecute.test.js +117 -0
  111. package/dist/utils/workflowExecute.test.js.map +1 -0
  112. package/package.json +3 -3
@@ -0,0 +1,430 @@
1
+ import { expect } from 'chai';
2
+ import { concat, encodeAbiParameters } from 'viem';
3
+ import { CALL, FLAG_RAW, STATICCALL, UNUSED_SLOT, VALUECALL, buildScript, encodeCommand, fillRuntimeSlots, } from './weiroll.js';
4
+ // Addresses used across tests
5
+ const TARGET_A = '0x1234567890123456789012345678901234567890';
6
+ const TARGET_B = '0xabcdefabcdefabcdefabcdefabcdefabcdefabcd';
7
+ const SELECTOR = '0xaabbccdd';
8
+ const EMPTY = '0x';
9
+ describe('utils/weiroll', () => {
10
+ describe('encodeCommand', () => {
11
+ it('packs selector, flags, inputs, output, and target into bytes32', () => {
12
+ const result = encodeCommand(SELECTOR, CALL, [0, 1, 2], 3, TARGET_A);
13
+ // Expected layout (32 bytes):
14
+ // aabbccdd — selector
15
+ // 01 — CALL flag
16
+ // 000102ffffff — inputs [0, 1, 2, 0xFF, 0xFF, 0xFF]
17
+ // 03 — output slot 3
18
+ // 1234567890123456789012345678901234567890 — target
19
+ expect(result).to.equal('0xaabbccdd01000102ffffff031234567890123456789012345678901234567890');
20
+ });
21
+ it('encodes STATICCALL flag correctly', () => {
22
+ const result = encodeCommand(SELECTOR, STATICCALL, [], UNUSED_SLOT, TARGET_A);
23
+ // flags byte = 0x02, all inputs = 0xFF, output = 0xFF
24
+ const flagsByte = result.slice(10, 12); // bytes[4] of the 32-byte word
25
+ expect(flagsByte).to.equal('02');
26
+ });
27
+ it('encodes VALUECALL flag correctly', () => {
28
+ const result = encodeCommand(SELECTOR, VALUECALL, [0], 1, TARGET_A);
29
+ const flagsByte = result.slice(10, 12);
30
+ expect(flagsByte).to.equal('03');
31
+ });
32
+ it('sets FLAG_RAW when combined with call type', () => {
33
+ const result = encodeCommand(SELECTOR, CALL | FLAG_RAW, [0], UNUSED_SLOT, TARGET_A);
34
+ const flagsByte = result.slice(10, 12);
35
+ expect(flagsByte).to.equal('21'); // 0x01 | 0x20 = 0x21
36
+ });
37
+ it('pads missing input slots with UNUSED_SLOT (0xFF)', () => {
38
+ const withZeroInputs = encodeCommand(SELECTOR, CALL, [], 0, TARGET_A);
39
+ const withExplicitFF = encodeCommand(SELECTOR, CALL, [UNUSED_SLOT, UNUSED_SLOT, UNUSED_SLOT, UNUSED_SLOT, UNUSED_SLOT, UNUSED_SLOT], 0, TARGET_A);
40
+ expect(withZeroInputs).to.equal(withExplicitFF);
41
+ // All 6 input bytes should be FF
42
+ const inputBytes = withZeroInputs.slice(12, 24); // bytes[5:10] of the word
43
+ expect(inputBytes).to.equal('ffffffffffffff'.slice(0, 12));
44
+ });
45
+ it('places the output slot at the correct byte position', () => {
46
+ const result = encodeCommand(SELECTOR, CALL, [], 42, TARGET_A);
47
+ // output is at byte index 11 (0-based) of the 32-byte word = chars 24:26
48
+ const outputByte = result.slice(24, 26);
49
+ expect(outputByte).to.equal('2a'); // 42 = 0x2a
50
+ });
51
+ it('places the target address in the lowest 20 bytes', () => {
52
+ const result = encodeCommand(SELECTOR, CALL, [], UNUSED_SLOT, TARGET_A);
53
+ // Last 40 hex chars = bytes [11:31]
54
+ const addrHex = result.slice(result.length - 40);
55
+ expect(addrHex).to.equal(TARGET_A.slice(2).toLowerCase());
56
+ });
57
+ it('produces a 66-character hex string (0x + 64 chars)', () => {
58
+ const result = encodeCommand(SELECTOR, CALL, [0], 0, TARGET_A);
59
+ expect(result).to.match(/^0x[0-9a-f]{64}$/);
60
+ });
61
+ it('throws if more than 6 inputs are provided', () => {
62
+ expect(() => encodeCommand(SELECTOR, CALL, [0, 1, 2, 3, 4, 5, 6], 0, TARGET_A)).to.throw('exceeds maximum of 6');
63
+ });
64
+ });
65
+ describe('buildScript', () => {
66
+ const POOL_CTX = {
67
+ poolId: '0x0000000000000000000000000000000000000000000000000000000000000001',
68
+ hubAddress: '0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef',
69
+ };
70
+ const CONFIGURABLE = {
71
+ slippageBps: '0x0000000000000000000000000000000000000000000000000000000000000032',
72
+ };
73
+ const SIMPLE_ACTION = {
74
+ target: TARGET_A,
75
+ selector: SELECTOR,
76
+ callType: CALL,
77
+ inputs: [0, 1],
78
+ output: 2,
79
+ };
80
+ it('encodes a single action into commands', () => {
81
+ const workflow = {
82
+ workflowRef: 'test',
83
+ actions: [SIMPLE_ACTION],
84
+ state: [],
85
+ };
86
+ const { commands } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
87
+ expect(commands).to.have.length(1);
88
+ expect(commands[0]).to.match(/^0x[0-9a-f]{64}$/);
89
+ });
90
+ it('pins literal slots and sets their bitmap bits', () => {
91
+ const workflow = {
92
+ workflowRef: 'test',
93
+ actions: [],
94
+ state: [
95
+ { type: 'literal', value: '0xdeadbeef' },
96
+ { type: 'literal', value: '0xcafebabe' },
97
+ ],
98
+ };
99
+ const { state, stateBitmap } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
100
+ expect(state[0]).to.equal('0xdeadbeef');
101
+ expect(state[1]).to.equal('0xcafebabe');
102
+ expect(stateBitmap).to.equal(3n); // bits 0 and 1 set
103
+ });
104
+ it('resolves magic slots from pool context and pins them', () => {
105
+ const workflow = {
106
+ workflowRef: 'test',
107
+ actions: [],
108
+ state: [{ type: 'magic', key: 'poolId' }],
109
+ };
110
+ const { state, stateBitmap } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
111
+ expect(state[0]).to.equal(POOL_CTX['poolId']);
112
+ expect(stateBitmap).to.equal(1n); // bit 0 set
113
+ });
114
+ it('resolves configurable slots and pins them', () => {
115
+ const workflow = {
116
+ workflowRef: 'test',
117
+ actions: [],
118
+ state: [{ type: 'configurable', key: 'slippageBps' }],
119
+ };
120
+ const { state, stateBitmap } = buildScript(workflow, {
121
+ poolContext: POOL_CTX,
122
+ configurableValues: CONFIGURABLE,
123
+ });
124
+ expect(state[0]).to.equal(CONFIGURABLE['slippageBps']);
125
+ expect(stateBitmap).to.equal(1n);
126
+ });
127
+ it('initializes runtime slots to empty bytes and does not set their bitmap bits', () => {
128
+ const workflow = {
129
+ workflowRef: 'test',
130
+ actions: [],
131
+ state: [{ type: 'runtime', key: 'amount' }],
132
+ };
133
+ const { state, stateBitmap } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
134
+ expect(state[0]).to.equal(EMPTY);
135
+ expect(stateBitmap).to.equal(0n); // bit 0 stays 0
136
+ });
137
+ it('correctly computes stateBitmap for mixed slot types', () => {
138
+ const workflow = {
139
+ workflowRef: 'test',
140
+ actions: [],
141
+ state: [
142
+ { type: 'literal', value: '0x01' }, // slot 0 — pinned
143
+ { type: 'magic', key: 'poolId' }, // slot 1 — pinned
144
+ { type: 'configurable', key: 'slippageBps' }, // slot 2 — pinned
145
+ { type: 'runtime', key: 'amount' }, // slot 3 — NOT pinned
146
+ { type: 'literal', value: '0x02' }, // slot 4 — pinned
147
+ ],
148
+ };
149
+ const { stateBitmap } = buildScript(workflow, {
150
+ poolContext: POOL_CTX,
151
+ configurableValues: CONFIGURABLE,
152
+ });
153
+ // bits 0, 1, 2, 4 set; bit 3 clear → 0b10111 = 23
154
+ expect(stateBitmap).to.equal(23n);
155
+ });
156
+ it('builds both commands and state together correctly', () => {
157
+ const literalValue = '0x0000000000000000000000000000000000000000000000000000000000000064';
158
+ const workflow = {
159
+ workflowRef: 'swap',
160
+ actions: [
161
+ { target: TARGET_A, selector: '0x12345678', callType: CALL, inputs: [0], output: 1 },
162
+ { target: TARGET_B, selector: '0x87654321', callType: STATICCALL, inputs: [1], output: UNUSED_SLOT },
163
+ ],
164
+ state: [
165
+ { type: 'literal', value: literalValue },
166
+ { type: 'runtime', key: 'result' },
167
+ ],
168
+ };
169
+ const { commands, state, stateBitmap } = buildScript(workflow, {
170
+ poolContext: POOL_CTX,
171
+ configurableValues: {},
172
+ });
173
+ expect(commands).to.have.length(2);
174
+ expect(state).to.have.length(2);
175
+ expect(state[0]).to.equal(literalValue);
176
+ expect(state[1]).to.equal(EMPTY);
177
+ expect(stateBitmap).to.equal(1n); // only slot 0 pinned
178
+ });
179
+ it('emits an extended command word when an action needs more than 6 input specifiers', () => {
180
+ const workflow = {
181
+ workflowRef: 'extended',
182
+ actions: [
183
+ {
184
+ target: TARGET_A,
185
+ selector: SELECTOR,
186
+ callType: CALL,
187
+ inputs: [0, 1, 2, 3, 4, 5, 6],
188
+ output: UNUSED_SLOT,
189
+ },
190
+ ],
191
+ state: Array.from({ length: 7 }, (_, index) => ({
192
+ type: 'literal',
193
+ value: `0x${(index + 1).toString(16).padStart(64, '0')}`,
194
+ })),
195
+ };
196
+ const { commands } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
197
+ expect(commands).to.have.length(2);
198
+ expect(commands[0]).to.equal('0xaabbccdd41ffffffffffffff' + TARGET_A.slice(2));
199
+ expect(commands[1]).to.match(/^0x00010203040506ff/);
200
+ });
201
+ it('emits an extended VALUECALL command when the ETH value plus args exceed 6 specifiers', () => {
202
+ const workflow = {
203
+ workflowRef: 'payable-extended',
204
+ actions: [
205
+ {
206
+ target: TARGET_A,
207
+ selector: SELECTOR,
208
+ callType: VALUECALL,
209
+ inputs: [0, 1, 2, 3, 4, 5, 6],
210
+ output: UNUSED_SLOT,
211
+ },
212
+ ],
213
+ state: Array.from({ length: 7 }, (_, index) => ({
214
+ type: 'literal',
215
+ value: `0x${(index + 1).toString(16).padStart(64, '0')}`,
216
+ })),
217
+ };
218
+ const { commands } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
219
+ expect(commands).to.have.length(2);
220
+ expect(commands[0]).to.equal('0xaabbccdd43ffffffffffffff' + TARGET_A.slice(2));
221
+ expect(commands[1]).to.match(/^0x00010203040506ff/);
222
+ });
223
+ it('assembles pinned raw calldata slots for dynamic inputs', () => {
224
+ const assets = [[TARGET_B, 100n]];
225
+ const encodedAssets = encodeAbiParameters([
226
+ {
227
+ type: 'tuple[]',
228
+ components: [{ type: 'address' }, { type: 'uint256' }],
229
+ },
230
+ ], [assets]);
231
+ const workflow = {
232
+ workflowRef: 'raw-dynamic',
233
+ actions: [
234
+ {
235
+ target: TARGET_A,
236
+ selector: SELECTOR,
237
+ callType: CALL,
238
+ inputs: [2],
239
+ output: UNUSED_SLOT,
240
+ rawMode: true,
241
+ },
242
+ ],
243
+ state: [
244
+ { type: 'magic', key: 'poolId' },
245
+ { type: 'configurable', key: 'assets' },
246
+ {
247
+ type: 'rawcalldata',
248
+ selector: SELECTOR,
249
+ parameterTypes: ['uint64', '(address,uint256)[]'],
250
+ sourceSlots: [0, 1],
251
+ actionIndex: 0,
252
+ },
253
+ ],
254
+ };
255
+ const { commands, state, stateBitmap } = buildScript(workflow, {
256
+ poolContext: POOL_CTX,
257
+ configurableValues: { assets: encodedAssets },
258
+ });
259
+ expect(commands[0]).to.equal('0xaabbccdd2102ffffffffff' + UNUSED_SLOT.toString(16).padStart(2, '0') + TARGET_A.slice(2));
260
+ expect(state[0]).to.equal(POOL_CTX['poolId']);
261
+ expect(state[1]).to.equal(encodedAssets);
262
+ expect(state[2]).to.equal(concat([
263
+ SELECTOR,
264
+ encodeAbiParameters([{ type: 'uint64' }, { type: 'tuple[]', components: [{ type: 'address' }, { type: 'uint256' }] }], [1n, assets]),
265
+ ]));
266
+ expect(stateBitmap).to.equal(7n);
267
+ });
268
+ it('assembles bytes parameters as ABI dynamic calldata in raw mode', () => {
269
+ const hookData = '0x636374702d686f6f6b2d646174612d30303030303030303030303030303031';
270
+ // Literal `bytes` slots are stored in the inner ABI form [length][padded data] (matches
271
+ // encodeLiteralValue); the rawcalldata assembler decodes it back to the raw value.
272
+ const hookDataFramed = '0x000000000000000000000000000000000000000000000000000000000000001f636374702d686f6f6b2d646174612d3030303030303030303030303030303100';
273
+ const workflow = {
274
+ workflowRef: 'raw-bytes',
275
+ actions: [
276
+ {
277
+ target: TARGET_A,
278
+ selector: SELECTOR,
279
+ callType: CALL,
280
+ inputs: [1],
281
+ output: UNUSED_SLOT,
282
+ rawMode: true,
283
+ },
284
+ ],
285
+ state: [
286
+ { type: 'literal', value: hookDataFramed },
287
+ {
288
+ type: 'rawcalldata',
289
+ selector: SELECTOR,
290
+ parameterTypes: ['bytes'],
291
+ sourceSlots: [0],
292
+ actionIndex: 0,
293
+ },
294
+ ],
295
+ };
296
+ const { state } = buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} });
297
+ expect(state[0]).to.equal(hookDataFramed);
298
+ expect(state[1]).to.equal(concat([SELECTOR, encodeAbiParameters([{ type: 'bytes' }], [hookData])]));
299
+ });
300
+ it('throws when a magic key is missing from pool context', () => {
301
+ const workflow = {
302
+ workflowRef: 'test',
303
+ actions: [],
304
+ state: [{ type: 'magic', key: 'missingKey' }],
305
+ };
306
+ expect(() => buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} })).to.throw('magic variable "missingKey" not found in pool context');
307
+ });
308
+ it('throws when a configurable key is not provided', () => {
309
+ const workflow = {
310
+ workflowRef: 'test',
311
+ actions: [],
312
+ state: [{ type: 'configurable', key: 'missingConfig' }],
313
+ };
314
+ expect(() => buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} })).to.throw('configurable value "missingConfig" not provided');
315
+ });
316
+ it('resolves magic command targets from pool context', () => {
317
+ const workflow = {
318
+ workflowRef: 'test',
319
+ actions: [
320
+ {
321
+ target: { type: 'magic', key: '$onOffRamp' },
322
+ selector: SELECTOR,
323
+ callType: CALL,
324
+ inputs: [],
325
+ output: UNUSED_SLOT,
326
+ },
327
+ ],
328
+ state: [],
329
+ };
330
+ const { commands } = buildScript(workflow, {
331
+ poolContext: {
332
+ ...POOL_CTX,
333
+ $onOffRamp: '0x000000000000000000000000aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
334
+ },
335
+ configurableValues: {},
336
+ });
337
+ expect(commands[0]).to.equal('0xaabbccdd01ffffffffffffffaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa');
338
+ });
339
+ it('throws when state exceeds 128 slots', () => {
340
+ const workflow = {
341
+ workflowRef: 'test',
342
+ actions: [],
343
+ state: Array.from({ length: 129 }, () => ({ type: 'runtime', key: 'x' })),
344
+ };
345
+ expect(() => buildScript(workflow, { poolContext: POOL_CTX, configurableValues: {} })).to.throw('maximum is 128');
346
+ });
347
+ });
348
+ describe('fillRuntimeSlots', () => {
349
+ const PINNED = '0x0000000000000000000000000000000000000000000000000000000000000064';
350
+ const RUNTIME_VALUE = '0x00000000000000000000000000000000000000000000000000000000000000de';
351
+ const workflow = {
352
+ workflowRef: 'test',
353
+ actions: [],
354
+ state: [
355
+ { type: 'literal', value: PINNED },
356
+ { type: 'runtime', key: 'amount' },
357
+ { type: 'runtime', key: 'recipient' },
358
+ ],
359
+ runtimeVariables: ['amount', 'recipient'],
360
+ };
361
+ it('fills runtime slots and leaves pinned slots unchanged', () => {
362
+ const state = [PINNED, EMPTY, EMPTY];
363
+ const recipient = '0x000000000000000000000000abcdefabcdefabcdefabcdefabcdefabcdefabcd';
364
+ const filled = fillRuntimeSlots(state, workflow, { amount: RUNTIME_VALUE, recipient });
365
+ expect(filled[0]).to.equal(PINNED);
366
+ expect(filled[1]).to.equal(RUNTIME_VALUE);
367
+ expect(filled[2]).to.equal(recipient);
368
+ });
369
+ it('returns a new array (does not mutate input)', () => {
370
+ const state = [PINNED, EMPTY, EMPTY];
371
+ const original = [...state];
372
+ fillRuntimeSlots(state, workflow, { amount: RUNTIME_VALUE, recipient: RUNTIME_VALUE });
373
+ expect(state).to.deep.equal(original);
374
+ });
375
+ it('throws when a required runtime variable has no matching value', () => {
376
+ const state = [PINNED, EMPTY, EMPTY];
377
+ expect(() => fillRuntimeSlots(state, workflow, { amount: RUNTIME_VALUE }) // missing 'recipient'
378
+ ).to.throw('"recipient"');
379
+ });
380
+ it('leaves computed runtime slots empty when absent from runtimeValues', () => {
381
+ const computedWorkflow = {
382
+ workflowRef: 'test',
383
+ actions: [],
384
+ state: [
385
+ { type: 'literal', value: PINNED },
386
+ { type: 'runtime', key: 'amount' },
387
+ { type: 'runtime', key: 'computed' }, // computed by weiroll VM, not user-filled
388
+ ],
389
+ runtimeVariables: ['amount'], // "computed" not listed — it's weiroll-computed
390
+ };
391
+ const state = [PINNED, EMPTY, EMPTY];
392
+ const filled = fillRuntimeSlots(state, computedWorkflow, { amount: RUNTIME_VALUE });
393
+ expect(filled[0]).to.equal(PINNED);
394
+ expect(filled[1]).to.equal(RUNTIME_VALUE);
395
+ expect(filled[2]).to.equal(EMPTY); // left empty for VM to fill
396
+ });
397
+ it('handles a workflow with no runtime slots (returns state unchanged)', () => {
398
+ const noRuntimeWorkflow = {
399
+ workflowRef: 'test',
400
+ actions: [],
401
+ state: [{ type: 'literal', value: PINNED }],
402
+ };
403
+ const state = [PINNED];
404
+ const filled = fillRuntimeSlots(state, noRuntimeWorkflow, {});
405
+ expect(filled).to.deep.equal([PINNED]);
406
+ });
407
+ it('assembles raw calldata slots after runtime values are filled', () => {
408
+ const rawWorkflow = {
409
+ workflowRef: 'raw-runtime',
410
+ actions: [],
411
+ state: [
412
+ { type: 'runtime', key: 'amount', parameter: 'uint256' },
413
+ {
414
+ type: 'rawcalldata',
415
+ selector: SELECTOR,
416
+ parameterTypes: ['uint256'],
417
+ sourceSlots: [0],
418
+ actionIndex: 0,
419
+ },
420
+ ],
421
+ runtimeVariables: ['amount'],
422
+ };
423
+ const state = [EMPTY, EMPTY];
424
+ const filled = fillRuntimeSlots(state, rawWorkflow, { amount: RUNTIME_VALUE });
425
+ expect(filled[0]).to.equal(RUNTIME_VALUE);
426
+ expect(filled[1]).to.equal(concat([SELECTOR, RUNTIME_VALUE]));
427
+ });
428
+ });
429
+ });
430
+ //# sourceMappingURL=weiroll.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weiroll.test.js","sourceRoot":"","sources":["../../src/utils/weiroll.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,121 @@
1
+ import type { Centrifuge } from '../Centrifuge.js';
2
+ import type { PoolNetwork } from '../entities/PoolNetwork.js';
3
+ import type { HexString } from '../types/index.js';
4
+ import type { MarketplaceWorkflow } from '../types/workflow.js';
5
+ import { type PoolContext, type WorkflowDefinition } from './weiroll.js';
6
+ /** A whitelisted policy entry on one chain: catalog workflow + its add-time pinned values. */
7
+ export type PolicyEntryInput = {
8
+ workflow: MarketplaceWorkflow;
9
+ configurableValues: Record<string, HexString>;
10
+ excludedActions?: number[];
11
+ };
12
+ export declare function applyWorkflowExclusions(workflow: MarketplaceWorkflow, excludedActions?: number[]): MarketplaceWorkflow;
13
+ export declare function buildPreparedWorkflowDefinition(workflow: MarketplaceWorkflow, excludedActions?: number[]): {
14
+ workflow: MarketplaceWorkflow;
15
+ workflowDef: WorkflowDefinition;
16
+ excludedActions: number[];
17
+ };
18
+ export declare function resolveWorkflowShareClassId(network: PoolNetwork, scId?: HexString): Promise<HexString>;
19
+ export declare function estimateWorkflowExecutionValue(options: {
20
+ centrifuge: Centrifuge;
21
+ network: PoolNetwork;
22
+ workflow: MarketplaceWorkflow;
23
+ workflowDef: WorkflowDefinition;
24
+ }): Promise<{
25
+ runtimeValues: Record<string, HexString>;
26
+ totalValue: bigint;
27
+ }>;
28
+ export declare function resolveWorkflowPoolContext(options: {
29
+ centrifuge: Centrifuge;
30
+ network: PoolNetwork;
31
+ workflowDef: WorkflowDefinition;
32
+ workflow: MarketplaceWorkflow;
33
+ strategist: HexString;
34
+ poolEscrowAddress?: HexString;
35
+ scId?: HexString;
36
+ }): Promise<{
37
+ poolContext: PoolContext;
38
+ resolvedScId?: HexString;
39
+ }>;
40
+ export declare function buildWorkflowScriptBase(options: {
41
+ centrifuge: Centrifuge;
42
+ network: PoolNetwork;
43
+ workflow: MarketplaceWorkflow;
44
+ strategist: HexString;
45
+ poolEscrowAddress?: HexString;
46
+ scId?: HexString;
47
+ configurableValues: Record<string, HexString>;
48
+ excludedActions?: number[];
49
+ }): Promise<{
50
+ workflow: MarketplaceWorkflow;
51
+ workflowDef: WorkflowDefinition;
52
+ commands: HexString[];
53
+ state: HexString[];
54
+ stateBitmap: bigint;
55
+ poolContext: PoolContext;
56
+ resolvedScId?: HexString;
57
+ }>;
58
+ /**
59
+ * Builds the full `OnchainPM.execute` argument set (commands/state/stateBitmap/proof)
60
+ * plus the native `value` for a single added workflow. This is the same pipeline the
61
+ * execute view runs for one workflow — extracted so several workflows can be built and
62
+ * then batched through `OnchainPM.executeMultiple`. Runs the permission preflights
63
+ * (throwing if the workflow isn't fully set up) and fills any payable runtime slots.
64
+ */
65
+ /**
66
+ * Build the full `OnchainPM.execute` argument set (commands/state/stateBitmap/proof) plus
67
+ * native `value` for a single whitelisted policy entry. Permission preflights are NOT run
68
+ * here — they live in the app; a keeper relies on `simulate`. `policy` is the strategist's
69
+ * full set of entries on this chain, needed to rebuild the Merkle proof tree.
70
+ */
71
+ export declare function buildWorkflowExecuteParams(options: {
72
+ centrifuge: Centrifuge;
73
+ network: PoolNetwork;
74
+ entry: PolicyEntryInput;
75
+ policy: PolicyEntryInput[];
76
+ strategist: HexString;
77
+ scId?: HexString;
78
+ poolEscrowAddress?: HexString;
79
+ /** Already-encoded runtime values keyed by slot key. Account workflows have none. */
80
+ runtimeValues?: Record<string, HexString>;
81
+ }): Promise<{
82
+ commands: HexString[];
83
+ state: HexString[];
84
+ stateBitmap: bigint;
85
+ callbacks: never[];
86
+ proof: HexString[];
87
+ value: bigint;
88
+ }>;
89
+ export declare function computeWorkflowScriptHash(options: {
90
+ centrifuge: Centrifuge;
91
+ network: PoolNetwork;
92
+ workflow: MarketplaceWorkflow;
93
+ strategist: HexString;
94
+ poolEscrowAddress?: HexString;
95
+ scId?: HexString;
96
+ configurableValues: Record<string, HexString>;
97
+ excludedActions?: number[];
98
+ }): Promise<{
99
+ workflow: MarketplaceWorkflow;
100
+ workflowDef: WorkflowDefinition;
101
+ scriptHash: HexString;
102
+ resolvedScId?: HexString;
103
+ }>;
104
+ /**
105
+ * Compute one script hash per policy entry — the leaves of the strategist's on-chain
106
+ * Merkle root. `policy` is already this-chain only (the caller filters by chain). On a
107
+ * build failure for an entry with no configurable/excluded customization, falls back to
108
+ * the catalog's pre-computed `workflowId`.
109
+ */
110
+ export declare function computeWorkflowGroupScriptHashes(options: {
111
+ centrifuge: Centrifuge;
112
+ network: PoolNetwork;
113
+ policy: PolicyEntryInput[];
114
+ strategist: HexString;
115
+ scId?: HexString;
116
+ poolEscrowAddress?: HexString;
117
+ }): Promise<HexString[]>;
118
+ export declare function isWorkflowInputOptional(parameter: string): boolean;
119
+ export declare function encodeWorkflowInputValue(parameter: string, rawValue: string): HexString;
120
+ export declare const encodeConfigurableValue: typeof encodeWorkflowInputValue;
121
+ //# sourceMappingURL=workflowExecute.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflowExecute.d.ts","sourceRoot":"","sources":["../../src/utils/workflowExecute.ts"],"names":[],"mappings":"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"}