@grimoirelabs/core 0.10.0 → 0.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.
- package/dist/compiler/grimoire/index.d.ts.map +1 -1
- package/dist/compiler/grimoire/index.js +1 -3
- package/dist/compiler/grimoire/index.js.map +1 -1
- package/dist/compiler/grimoire/transformer.d.ts +2 -0
- package/dist/compiler/grimoire/transformer.d.ts.map +1 -1
- package/dist/compiler/grimoire/transformer.js +162 -2
- package/dist/compiler/grimoire/transformer.js.map +1 -1
- package/dist/compiler/ir-generator.d.ts.map +1 -1
- package/dist/compiler/ir-generator.js +280 -0
- package/dist/compiler/ir-generator.js.map +1 -1
- package/dist/compiler/validator.js +42 -5
- package/dist/compiler/validator.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/context.d.ts +1 -0
- package/dist/runtime/context.d.ts.map +1 -1
- package/dist/runtime/context.js +3 -3
- package/dist/runtime/context.js.map +1 -1
- package/dist/runtime/cross-chain-orchestrator.d.ts +52 -0
- package/dist/runtime/cross-chain-orchestrator.d.ts.map +1 -0
- package/dist/runtime/cross-chain-orchestrator.js +399 -0
- package/dist/runtime/cross-chain-orchestrator.js.map +1 -0
- package/dist/runtime/index.d.ts +1 -0
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +1 -0
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/interpreter.d.ts +10 -0
- package/dist/runtime/interpreter.d.ts.map +1 -1
- package/dist/runtime/interpreter.js +6 -0
- package/dist/runtime/interpreter.js.map +1 -1
- package/dist/runtime/sqlite-state-store.d.ts +12 -1
- package/dist/runtime/sqlite-state-store.d.ts.map +1 -1
- package/dist/runtime/sqlite-state-store.js +259 -35
- package/dist/runtime/sqlite-state-store.js.map +1 -1
- package/dist/runtime/state-store.d.ts +16 -0
- package/dist/runtime/state-store.d.ts.map +1 -1
- package/dist/runtime/state-store.js +1 -0
- package/dist/runtime/state-store.js.map +1 -1
- package/dist/runtime/steps/action.d.ts +8 -0
- package/dist/runtime/steps/action.d.ts.map +1 -1
- package/dist/runtime/steps/action.js +198 -20
- package/dist/runtime/steps/action.js.map +1 -1
- package/dist/runtime/value-flow.d.ts.map +1 -1
- package/dist/runtime/value-flow.js +57 -12
- package/dist/runtime/value-flow.js.map +1 -1
- package/dist/types/actions.d.ts +71 -1
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/cross-chain.d.ts +102 -0
- package/dist/types/cross-chain.d.ts.map +1 -0
- package/dist/types/cross-chain.js +5 -0
- package/dist/types/cross-chain.js.map +1 -0
- package/dist/types/execution.d.ts +56 -1
- package/dist/types/execution.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/receipt.d.ts +6 -0
- package/dist/types/receipt.d.ts.map +1 -1
- package/dist/venues/types.d.ts +18 -0
- package/dist/venues/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -651,6 +651,129 @@ function transformAction(raw, errors) {
|
|
|
651
651
|
venue: raw.venue,
|
|
652
652
|
assets: raw.assets,
|
|
653
653
|
};
|
|
654
|
+
case "add_liquidity":
|
|
655
|
+
return {
|
|
656
|
+
type: "add_liquidity",
|
|
657
|
+
venue: raw.venue,
|
|
658
|
+
asset: raw.asset,
|
|
659
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
660
|
+
assetOut: readAssetOut(raw),
|
|
661
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
662
|
+
keepYt: parseOptionalBoolean(raw.keep_yt ?? raw.keepYt),
|
|
663
|
+
...parsePendleActionOptions(raw),
|
|
664
|
+
};
|
|
665
|
+
case "add_liquidity_dual":
|
|
666
|
+
return {
|
|
667
|
+
type: "add_liquidity_dual",
|
|
668
|
+
venue: raw.venue,
|
|
669
|
+
inputs: parsePendleInputs(raw.inputs, errors),
|
|
670
|
+
outputs: parseOutputAssets(raw.outputs) ?? [],
|
|
671
|
+
keepYt: parseOptionalBoolean(raw.keep_yt ?? raw.keepYt),
|
|
672
|
+
...parsePendleActionOptions(raw),
|
|
673
|
+
};
|
|
674
|
+
case "remove_liquidity":
|
|
675
|
+
return {
|
|
676
|
+
type: "remove_liquidity",
|
|
677
|
+
venue: raw.venue,
|
|
678
|
+
asset: raw.asset,
|
|
679
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
680
|
+
assetOut: readAssetOut(raw),
|
|
681
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
682
|
+
...parsePendleActionOptions(raw),
|
|
683
|
+
};
|
|
684
|
+
case "remove_liquidity_dual":
|
|
685
|
+
return {
|
|
686
|
+
type: "remove_liquidity_dual",
|
|
687
|
+
venue: raw.venue,
|
|
688
|
+
inputs: parsePendleInputs(raw.inputs, errors),
|
|
689
|
+
outputs: parseOutputAssets(raw.outputs) ?? [],
|
|
690
|
+
...parsePendleActionOptions(raw),
|
|
691
|
+
};
|
|
692
|
+
case "mint_py":
|
|
693
|
+
return {
|
|
694
|
+
type: "mint_py",
|
|
695
|
+
venue: raw.venue,
|
|
696
|
+
asset: raw.asset,
|
|
697
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
698
|
+
assetOut: readAssetOut(raw),
|
|
699
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
700
|
+
...parsePendleActionOptions(raw),
|
|
701
|
+
};
|
|
702
|
+
case "redeem_py":
|
|
703
|
+
return {
|
|
704
|
+
type: "redeem_py",
|
|
705
|
+
venue: raw.venue,
|
|
706
|
+
asset: raw.asset,
|
|
707
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
708
|
+
assetOut: readAssetOut(raw),
|
|
709
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
710
|
+
...parsePendleActionOptions(raw),
|
|
711
|
+
};
|
|
712
|
+
case "mint_sy":
|
|
713
|
+
return {
|
|
714
|
+
type: "mint_sy",
|
|
715
|
+
venue: raw.venue,
|
|
716
|
+
asset: raw.asset,
|
|
717
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
718
|
+
assetOut: readAssetOut(raw),
|
|
719
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
720
|
+
...parsePendleActionOptions(raw),
|
|
721
|
+
};
|
|
722
|
+
case "redeem_sy":
|
|
723
|
+
return {
|
|
724
|
+
type: "redeem_sy",
|
|
725
|
+
venue: raw.venue,
|
|
726
|
+
asset: raw.asset,
|
|
727
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
728
|
+
assetOut: readAssetOut(raw),
|
|
729
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
730
|
+
...parsePendleActionOptions(raw),
|
|
731
|
+
};
|
|
732
|
+
case "transfer_liquidity":
|
|
733
|
+
return {
|
|
734
|
+
type: "transfer_liquidity",
|
|
735
|
+
venue: raw.venue,
|
|
736
|
+
inputs: parsePendleInputs(raw.inputs, errors),
|
|
737
|
+
outputs: parseOutputAssets(raw.outputs) ?? [],
|
|
738
|
+
keepYt: parseOptionalBoolean(raw.keep_yt ?? raw.keepYt),
|
|
739
|
+
...parsePendleActionOptions(raw),
|
|
740
|
+
};
|
|
741
|
+
case "roll_over_pt":
|
|
742
|
+
return {
|
|
743
|
+
type: "roll_over_pt",
|
|
744
|
+
venue: raw.venue,
|
|
745
|
+
asset: raw.asset,
|
|
746
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
747
|
+
assetOut: readAssetOut(raw),
|
|
748
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
749
|
+
...parsePendleActionOptions(raw),
|
|
750
|
+
};
|
|
751
|
+
case "exit_market":
|
|
752
|
+
return {
|
|
753
|
+
type: "exit_market",
|
|
754
|
+
venue: raw.venue,
|
|
755
|
+
inputs: parsePendleInputs(raw.inputs, errors),
|
|
756
|
+
outputs: parseOutputAssets(raw.outputs) ?? [],
|
|
757
|
+
...parsePendleActionOptions(raw),
|
|
758
|
+
};
|
|
759
|
+
case "convert_lp_to_pt":
|
|
760
|
+
return {
|
|
761
|
+
type: "convert_lp_to_pt",
|
|
762
|
+
venue: raw.venue,
|
|
763
|
+
asset: raw.asset,
|
|
764
|
+
amount: parseActionAmount(raw.amount, errors),
|
|
765
|
+
assetOut: readAssetOut(raw),
|
|
766
|
+
outputs: parseOutputAssets(raw.outputs),
|
|
767
|
+
...parsePendleActionOptions(raw),
|
|
768
|
+
};
|
|
769
|
+
case "pendle_swap":
|
|
770
|
+
return {
|
|
771
|
+
type: "pendle_swap",
|
|
772
|
+
venue: raw.venue,
|
|
773
|
+
inputs: parsePendleInputs(raw.inputs, errors),
|
|
774
|
+
outputs: parseOutputAssets(raw.outputs) ?? [],
|
|
775
|
+
...parsePendleActionOptions(raw),
|
|
776
|
+
};
|
|
654
777
|
case "bridge": {
|
|
655
778
|
const toChainValue = raw.to_chain ?? raw.toChain;
|
|
656
779
|
if (toChainValue === undefined) {
|
|
@@ -705,6 +828,10 @@ function transformAction(raw, errors) {
|
|
|
705
828
|
args[key] = { kind: "literal", value, type: "string" };
|
|
706
829
|
continue;
|
|
707
830
|
}
|
|
831
|
+
if (op === "convert") {
|
|
832
|
+
args[key] = parseConvertCustomActionValue(value);
|
|
833
|
+
continue;
|
|
834
|
+
}
|
|
708
835
|
args[key] = parseCustomActionValue(value, errors);
|
|
709
836
|
}
|
|
710
837
|
}
|
|
@@ -720,6 +847,134 @@ function transformAction(raw, errors) {
|
|
|
720
847
|
return null;
|
|
721
848
|
}
|
|
722
849
|
}
|
|
850
|
+
function parseActionAmount(value, errors) {
|
|
851
|
+
if (typeof value === "bigint") {
|
|
852
|
+
return value;
|
|
853
|
+
}
|
|
854
|
+
if (typeof value === "number" || typeof value === "boolean") {
|
|
855
|
+
return parseExpressionSafe(value, errors);
|
|
856
|
+
}
|
|
857
|
+
if (typeof value === "string") {
|
|
858
|
+
return parseExpressionSafe(value, errors);
|
|
859
|
+
}
|
|
860
|
+
if (value && typeof value === "object" && "kind" in value) {
|
|
861
|
+
return value;
|
|
862
|
+
}
|
|
863
|
+
errors.push({
|
|
864
|
+
code: "INVALID_ACTION_AMOUNT",
|
|
865
|
+
message: `Unsupported action amount value '${String(value)}'`,
|
|
866
|
+
});
|
|
867
|
+
return { kind: "literal", value: 0, type: "int" };
|
|
868
|
+
}
|
|
869
|
+
function readAssetOut(raw) {
|
|
870
|
+
const assetOut = raw.asset_out ?? raw.assetOut;
|
|
871
|
+
if (typeof assetOut !== "string") {
|
|
872
|
+
return undefined;
|
|
873
|
+
}
|
|
874
|
+
return assetOut;
|
|
875
|
+
}
|
|
876
|
+
function parseOutputAssets(value) {
|
|
877
|
+
if (Array.isArray(value)) {
|
|
878
|
+
const outputs = value.map((entry) => String(entry).trim()).filter((entry) => entry.length > 0);
|
|
879
|
+
return outputs.length > 0 ? outputs : undefined;
|
|
880
|
+
}
|
|
881
|
+
if (typeof value === "string") {
|
|
882
|
+
const trimmed = value.trim();
|
|
883
|
+
if (!trimmed) {
|
|
884
|
+
return undefined;
|
|
885
|
+
}
|
|
886
|
+
if (!trimmed.includes(",")) {
|
|
887
|
+
return [trimmed];
|
|
888
|
+
}
|
|
889
|
+
const outputs = trimmed
|
|
890
|
+
.split(",")
|
|
891
|
+
.map((entry) => entry.trim())
|
|
892
|
+
.filter((entry) => entry.length > 0);
|
|
893
|
+
return outputs.length > 0 ? outputs : undefined;
|
|
894
|
+
}
|
|
895
|
+
return undefined;
|
|
896
|
+
}
|
|
897
|
+
function parsePendleInputs(value, errors) {
|
|
898
|
+
if (!Array.isArray(value)) {
|
|
899
|
+
return [];
|
|
900
|
+
}
|
|
901
|
+
const inputs = [];
|
|
902
|
+
for (const entry of value) {
|
|
903
|
+
if (!entry || typeof entry !== "object") {
|
|
904
|
+
continue;
|
|
905
|
+
}
|
|
906
|
+
const record = entry;
|
|
907
|
+
const asset = record.asset;
|
|
908
|
+
const amount = record.amount;
|
|
909
|
+
if (typeof asset !== "string") {
|
|
910
|
+
errors.push({
|
|
911
|
+
code: "INVALID_PENDLE_INPUT",
|
|
912
|
+
message: "Pendle input entry is missing asset",
|
|
913
|
+
});
|
|
914
|
+
continue;
|
|
915
|
+
}
|
|
916
|
+
inputs.push({
|
|
917
|
+
asset,
|
|
918
|
+
amount: parseActionAmount(amount, errors),
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
return inputs;
|
|
922
|
+
}
|
|
923
|
+
function parseOptionalBoolean(value) {
|
|
924
|
+
if (typeof value === "boolean") {
|
|
925
|
+
return value;
|
|
926
|
+
}
|
|
927
|
+
if (typeof value !== "string") {
|
|
928
|
+
return undefined;
|
|
929
|
+
}
|
|
930
|
+
if (value === "true") {
|
|
931
|
+
return true;
|
|
932
|
+
}
|
|
933
|
+
if (value === "false") {
|
|
934
|
+
return false;
|
|
935
|
+
}
|
|
936
|
+
return undefined;
|
|
937
|
+
}
|
|
938
|
+
function parseOptionalStringArray(value) {
|
|
939
|
+
if (Array.isArray(value)) {
|
|
940
|
+
const items = value.map((entry) => String(entry).trim()).filter((entry) => entry.length > 0);
|
|
941
|
+
return items.length > 0 ? items : undefined;
|
|
942
|
+
}
|
|
943
|
+
if (typeof value === "string") {
|
|
944
|
+
const trimmed = value.trim();
|
|
945
|
+
if (!trimmed)
|
|
946
|
+
return undefined;
|
|
947
|
+
const values = trimmed
|
|
948
|
+
.split(",")
|
|
949
|
+
.map((entry) => entry.trim())
|
|
950
|
+
.filter((entry) => entry.length > 0);
|
|
951
|
+
return values.length > 0 ? values : undefined;
|
|
952
|
+
}
|
|
953
|
+
return undefined;
|
|
954
|
+
}
|
|
955
|
+
function parsePendleActionOptions(raw) {
|
|
956
|
+
const enableAggregator = parseOptionalBoolean(raw.enable_aggregator ?? raw.enableAggregator);
|
|
957
|
+
const aggregators = parseOptionalStringArray(raw.aggregators);
|
|
958
|
+
const needScale = parseOptionalBoolean(raw.need_scale ?? raw.needScale);
|
|
959
|
+
const redeemRewards = parseOptionalBoolean(raw.redeem_rewards ?? raw.redeemRewards);
|
|
960
|
+
const additionalData = raw.additional_data ?? raw.additionalData;
|
|
961
|
+
const useLimitOrder = parseOptionalBoolean(raw.use_limit_order ?? raw.useLimitOrder);
|
|
962
|
+
const options = {};
|
|
963
|
+
if (enableAggregator !== undefined)
|
|
964
|
+
options.enableAggregator = enableAggregator;
|
|
965
|
+
if (aggregators !== undefined)
|
|
966
|
+
options.aggregators = aggregators;
|
|
967
|
+
if (needScale !== undefined)
|
|
968
|
+
options.needScale = needScale;
|
|
969
|
+
if (redeemRewards !== undefined)
|
|
970
|
+
options.redeemRewards = redeemRewards;
|
|
971
|
+
if (typeof additionalData === "string" && additionalData.trim().length > 0) {
|
|
972
|
+
options.additionalData = additionalData;
|
|
973
|
+
}
|
|
974
|
+
if (useLimitOrder !== undefined)
|
|
975
|
+
options.useLimitOrder = useLimitOrder;
|
|
976
|
+
return options;
|
|
977
|
+
}
|
|
723
978
|
function parseCustomActionValue(input, errors) {
|
|
724
979
|
if (input === null) {
|
|
725
980
|
return null;
|
|
@@ -746,6 +1001,31 @@ function parseCustomActionValue(input, errors) {
|
|
|
746
1001
|
}
|
|
747
1002
|
return { kind: "literal", value: String(input), type: "string" };
|
|
748
1003
|
}
|
|
1004
|
+
function parseConvertCustomActionValue(input) {
|
|
1005
|
+
if (input === null) {
|
|
1006
|
+
return null;
|
|
1007
|
+
}
|
|
1008
|
+
if (typeof input === "string" ||
|
|
1009
|
+
typeof input === "number" ||
|
|
1010
|
+
typeof input === "boolean" ||
|
|
1011
|
+
typeof input === "bigint") {
|
|
1012
|
+
return input;
|
|
1013
|
+
}
|
|
1014
|
+
if (Array.isArray(input)) {
|
|
1015
|
+
return input.map((item) => parseConvertCustomActionValue(item));
|
|
1016
|
+
}
|
|
1017
|
+
if (typeof input === "object") {
|
|
1018
|
+
if ("kind" in input && typeof input.kind === "string") {
|
|
1019
|
+
return input;
|
|
1020
|
+
}
|
|
1021
|
+
const out = {};
|
|
1022
|
+
for (const [key, value] of Object.entries(input)) {
|
|
1023
|
+
out[key] = parseConvertCustomActionValue(value);
|
|
1024
|
+
}
|
|
1025
|
+
return out;
|
|
1026
|
+
}
|
|
1027
|
+
return String(input);
|
|
1028
|
+
}
|
|
749
1029
|
/**
|
|
750
1030
|
* Parse expression safely, returning a literal on failure
|
|
751
1031
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ir-generator.js","sourceRoot":"","sources":["../../src/compiler/ir-generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ir-generator.js","sourceRoot":"","sources":["../../src/compiler/ir-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -237,21 +237,55 @@ function validateStep(step, ctx, errors, warnings) {
|
|
|
237
237
|
message: `Step '${step.id}' references undefined asset '${step.action.assetIn}'`,
|
|
238
238
|
});
|
|
239
239
|
}
|
|
240
|
-
if ("
|
|
240
|
+
if ("asset" in step.action && !ctx.assetSymbols.has(step.action.asset)) {
|
|
241
241
|
warnings.push({
|
|
242
242
|
code: "UNKNOWN_ASSET",
|
|
243
|
-
message: `Step '${step.id}' references undefined asset '${step.action.
|
|
243
|
+
message: `Step '${step.id}' references undefined asset '${step.action.asset}'`,
|
|
244
244
|
});
|
|
245
245
|
}
|
|
246
|
-
if ("
|
|
246
|
+
if ("assetOut" in step.action &&
|
|
247
|
+
step.action.assetOut &&
|
|
248
|
+
!ctx.assetSymbols.has(step.action.assetOut)) {
|
|
247
249
|
warnings.push({
|
|
248
250
|
code: "UNKNOWN_ASSET",
|
|
249
|
-
message: `Step '${step.id}' references undefined asset '${step.action.
|
|
251
|
+
message: `Step '${step.id}' references undefined asset '${step.action.assetOut}'`,
|
|
250
252
|
});
|
|
251
253
|
}
|
|
254
|
+
if ("outputs" in step.action) {
|
|
255
|
+
const outputs = step.action.outputs;
|
|
256
|
+
if (outputs) {
|
|
257
|
+
for (const outputAsset of outputs) {
|
|
258
|
+
if (ctx.assetSymbols.has(outputAsset))
|
|
259
|
+
continue;
|
|
260
|
+
warnings.push({
|
|
261
|
+
code: "UNKNOWN_ASSET",
|
|
262
|
+
message: `Step '${step.id}' references undefined asset '${outputAsset}'`,
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if ("inputs" in step.action) {
|
|
268
|
+
for (const input of step.action.inputs) {
|
|
269
|
+
if (ctx.assetSymbols.has(input.asset))
|
|
270
|
+
continue;
|
|
271
|
+
warnings.push({
|
|
272
|
+
code: "UNKNOWN_ASSET",
|
|
273
|
+
message: `Step '${step.id}' references undefined asset '${input.asset}'`,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
}
|
|
252
277
|
// Validate amount expression if not "max"
|
|
253
278
|
if ("amount" in step.action && step.action.amount !== "max") {
|
|
254
|
-
|
|
279
|
+
if (isExpressionNode(step.action.amount)) {
|
|
280
|
+
validateExpression(step.action.amount, ctx, errors, `step '${step.id}'`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if ("inputs" in step.action) {
|
|
284
|
+
for (const input of step.action.inputs) {
|
|
285
|
+
if (isExpressionNode(input.amount)) {
|
|
286
|
+
validateExpression(input.amount, ctx, errors, `step '${step.id}'`);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
255
289
|
}
|
|
256
290
|
// Validate skill reference
|
|
257
291
|
if (step.skill && !ctx.skillNames.has(step.skill)) {
|
|
@@ -366,6 +400,9 @@ function validateStep(step, ctx, errors, warnings) {
|
|
|
366
400
|
break;
|
|
367
401
|
}
|
|
368
402
|
}
|
|
403
|
+
function isExpressionNode(value) {
|
|
404
|
+
return typeof value === "object" && value !== null && "kind" in value;
|
|
405
|
+
}
|
|
369
406
|
/**
|
|
370
407
|
* Validate an expression
|
|
371
408
|
*/
|