@secondlayer/cli 1.2.4 → 1.4.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/cli.js +15182 -14782
- package/dist/cli.js.map +111 -105
- package/dist/index.js +47 -60
- package/dist/index.js.map +6 -6
- package/package.json +6 -8
package/dist/index.js
CHANGED
|
@@ -377,12 +377,12 @@ ${JSON.stringify(content, null, 2)}`;
|
|
|
377
377
|
}
|
|
378
378
|
// src/plugins/clarinet/index.ts
|
|
379
379
|
import { initSimnet } from "@hirosystems/clarinet-sdk";
|
|
380
|
-
import { toCamelCase as
|
|
380
|
+
import { toCamelCase as toCamelCase5 } from "@secondlayer/stacks/clarity";
|
|
381
381
|
|
|
382
382
|
// src/generators/contract.ts
|
|
383
383
|
init_format();
|
|
384
384
|
import {
|
|
385
|
-
toCamelCase as
|
|
385
|
+
toCamelCase as toCamelCase4
|
|
386
386
|
} from "@secondlayer/stacks/clarity";
|
|
387
387
|
|
|
388
388
|
// src/utils/type-mapping.ts
|
|
@@ -599,6 +599,37 @@ function generateClarityConversion(argName, argType) {
|
|
|
599
599
|
return `${argName}`;
|
|
600
600
|
}
|
|
601
601
|
|
|
602
|
+
// src/utils/generator-helpers.ts
|
|
603
|
+
import { toCamelCase as toCamelCase3, isAbiTuple as isAbiTuple3 } from "@secondlayer/stacks/clarity";
|
|
604
|
+
function generateArgsSignature(args) {
|
|
605
|
+
if (args.length === 0)
|
|
606
|
+
return "";
|
|
607
|
+
const argsTypes = args.map((arg) => {
|
|
608
|
+
const camelName = toCamelCase3(arg.name);
|
|
609
|
+
return `${camelName}: ${getTypeForArg(arg)}`;
|
|
610
|
+
}).join("; ");
|
|
611
|
+
return `args: { ${argsTypes} }, `;
|
|
612
|
+
}
|
|
613
|
+
function generateClarityArgs(args) {
|
|
614
|
+
if (args.length === 0)
|
|
615
|
+
return "";
|
|
616
|
+
return args.map((arg) => {
|
|
617
|
+
const argName = `args.${toCamelCase3(arg.name)}`;
|
|
618
|
+
return generateClarityConversion(argName, arg);
|
|
619
|
+
}).join(", ");
|
|
620
|
+
}
|
|
621
|
+
function generateMapKeyConversion(keyType) {
|
|
622
|
+
if (isAbiTuple3(keyType)) {
|
|
623
|
+
const fields = keyType.tuple.map((field) => {
|
|
624
|
+
const camelFieldName = toCamelCase3(field.name);
|
|
625
|
+
const fieldConversion = generateClarityConversion(`key.${camelFieldName}`, { type: field.type });
|
|
626
|
+
return `"${field.name}": ${fieldConversion}`;
|
|
627
|
+
}).join(", ");
|
|
628
|
+
return `Cl.tuple({ ${fields} })`;
|
|
629
|
+
}
|
|
630
|
+
return generateClarityConversion("key", { type: keyType });
|
|
631
|
+
}
|
|
632
|
+
|
|
602
633
|
// src/generators/contract.ts
|
|
603
634
|
function generateNetworkUtils() {
|
|
604
635
|
return `/**
|
|
@@ -690,7 +721,7 @@ function generateAbiConstant(name, abi) {
|
|
|
690
721
|
return `export const ${name}Abi = ${abiJson} as const`;
|
|
691
722
|
}
|
|
692
723
|
function generateMethod(func, address, contractName) {
|
|
693
|
-
const methodName =
|
|
724
|
+
const methodName = toCamelCase4(func.name);
|
|
694
725
|
if (func.args.length === 0) {
|
|
695
726
|
return `${methodName}() {
|
|
696
727
|
return {
|
|
@@ -703,7 +734,7 @@ function generateMethod(func, address, contractName) {
|
|
|
703
734
|
}
|
|
704
735
|
if (func.args.length === 1) {
|
|
705
736
|
const originalArgName = func.args[0].name;
|
|
706
|
-
const argName =
|
|
737
|
+
const argName = toCamelCase4(originalArgName);
|
|
707
738
|
const argType = getTypeForArg(func.args[0]);
|
|
708
739
|
const clarityConversion = generateClarityConversion(argName, func.args[0]);
|
|
709
740
|
return `${methodName}(...args: [{ ${argName}: ${argType} }] | [${argType}]) {
|
|
@@ -719,17 +750,17 @@ function generateMethod(func, address, contractName) {
|
|
|
719
750
|
}
|
|
720
751
|
}`;
|
|
721
752
|
}
|
|
722
|
-
const argsList = func.args.map((arg) =>
|
|
753
|
+
const argsList = func.args.map((arg) => toCamelCase4(arg.name)).join(", ");
|
|
723
754
|
const argsTypes = func.args.map((arg) => {
|
|
724
|
-
const camelName =
|
|
755
|
+
const camelName = toCamelCase4(arg.name);
|
|
725
756
|
return `${camelName}: ${getTypeForArg(arg)}`;
|
|
726
757
|
}).join("; ");
|
|
727
758
|
const argsArray = func.args.map((arg) => {
|
|
728
|
-
const argName =
|
|
759
|
+
const argName = toCamelCase4(arg.name);
|
|
729
760
|
return generateClarityConversion(argName, arg);
|
|
730
761
|
}).join(", ");
|
|
731
762
|
const objectAccess = func.args.map((arg) => {
|
|
732
|
-
const camelName =
|
|
763
|
+
const camelName = toCamelCase4(arg.name);
|
|
733
764
|
return `args[0].${camelName}`;
|
|
734
765
|
}).join(", ");
|
|
735
766
|
const positionTypes = func.args.map((arg) => getTypeForArg(arg)).join(", ");
|
|
@@ -751,7 +782,7 @@ function generateMapsObject(maps, address, contractName) {
|
|
|
751
782
|
return "";
|
|
752
783
|
}
|
|
753
784
|
const mapMethods = maps.map((map) => {
|
|
754
|
-
const methodName =
|
|
785
|
+
const methodName = toCamelCase4(map.name);
|
|
755
786
|
const keyType = getTypeForArg({ type: map.key });
|
|
756
787
|
const valueType = getTypeForArg({ type: map.value });
|
|
757
788
|
const keyConversion = generateMapKeyConversion(map.key);
|
|
@@ -812,7 +843,7 @@ function generateVarsObject(variables, address, contractName) {
|
|
|
812
843
|
return "";
|
|
813
844
|
}
|
|
814
845
|
const varMethods = dataVars.map((variable) => {
|
|
815
|
-
const methodName =
|
|
846
|
+
const methodName = toCamelCase4(variable.name);
|
|
816
847
|
const valueType = getTypeForArg({ type: variable.type });
|
|
817
848
|
return `${methodName}: {
|
|
818
849
|
async get(options?: { network?: 'mainnet' | 'testnet' | 'devnet' }): Promise<${valueType}> {
|
|
@@ -857,7 +888,7 @@ function generateConstantsObject(variables, address, contractName) {
|
|
|
857
888
|
return "";
|
|
858
889
|
}
|
|
859
890
|
const constMethods = constants.map((constant) => {
|
|
860
|
-
const methodName =
|
|
891
|
+
const methodName = toCamelCase4(constant.name);
|
|
861
892
|
const valueType = getTypeForArg({ type: constant.type });
|
|
862
893
|
return `${methodName}: {
|
|
863
894
|
async get(options?: { network?: 'mainnet' | 'testnet' | 'devnet' }): Promise<${valueType}> {
|
|
@@ -893,17 +924,6 @@ function generateConstantsObject(variables, address, contractName) {
|
|
|
893
924
|
`)}
|
|
894
925
|
}`;
|
|
895
926
|
}
|
|
896
|
-
function generateMapKeyConversion(keyType) {
|
|
897
|
-
if (keyType.tuple) {
|
|
898
|
-
const fields = keyType.tuple.map((field) => {
|
|
899
|
-
const camelFieldName = toCamelCase3(field.name);
|
|
900
|
-
const fieldConversion = generateClarityConversion(`key.${camelFieldName}`, { type: field.type });
|
|
901
|
-
return `"${field.name}": ${fieldConversion}`;
|
|
902
|
-
}).join(", ");
|
|
903
|
-
return `Cl.tuple({ ${fields} })`;
|
|
904
|
-
}
|
|
905
|
-
return generateClarityConversion("key", { type: keyType });
|
|
906
|
-
}
|
|
907
927
|
|
|
908
928
|
// src/utils/abi-compat.ts
|
|
909
929
|
function normalizeAccess(access) {
|
|
@@ -1060,7 +1080,7 @@ function normalizeAbi(abi) {
|
|
|
1060
1080
|
|
|
1061
1081
|
// src/plugins/clarinet/index.ts
|
|
1062
1082
|
function sanitizeContractName(name) {
|
|
1063
|
-
return
|
|
1083
|
+
return toCamelCase5(name);
|
|
1064
1084
|
}
|
|
1065
1085
|
async function isUserDefinedContract(contractId, manifestPath) {
|
|
1066
1086
|
const { address, contractName } = parseContractId(contractId);
|
|
@@ -1171,28 +1191,6 @@ async function hasClarinetProject(path2 = "./Clarinet.toml") {
|
|
|
1171
1191
|
}
|
|
1172
1192
|
// src/plugins/actions/generators.ts
|
|
1173
1193
|
import { toCamelCase as toCamelCase6 } from "@secondlayer/stacks/clarity";
|
|
1174
|
-
|
|
1175
|
-
// src/utils/generator-helpers.ts
|
|
1176
|
-
import { toCamelCase as toCamelCase5 } from "@secondlayer/stacks/clarity";
|
|
1177
|
-
function generateArgsSignature(args) {
|
|
1178
|
-
if (args.length === 0)
|
|
1179
|
-
return "";
|
|
1180
|
-
const argsTypes = args.map((arg) => {
|
|
1181
|
-
const camelName = toCamelCase5(arg.name);
|
|
1182
|
-
return `${camelName}: ${getTypeForArg(arg)}`;
|
|
1183
|
-
}).join("; ");
|
|
1184
|
-
return `args: { ${argsTypes} }, `;
|
|
1185
|
-
}
|
|
1186
|
-
function generateClarityArgs(args) {
|
|
1187
|
-
if (args.length === 0)
|
|
1188
|
-
return "";
|
|
1189
|
-
return args.map((arg) => {
|
|
1190
|
-
const argName = `args.${toCamelCase5(arg.name)}`;
|
|
1191
|
-
return generateClarityConversion(argName, arg);
|
|
1192
|
-
}).join(", ");
|
|
1193
|
-
}
|
|
1194
|
-
|
|
1195
|
-
// src/plugins/actions/generators.ts
|
|
1196
1194
|
function generateReadHelpers(contract, options) {
|
|
1197
1195
|
const { abi } = contract;
|
|
1198
1196
|
const functions = abi.functions || [];
|
|
@@ -2483,7 +2481,7 @@ var react = (options = {}) => {
|
|
|
2483
2481
|
// src/plugins/testing/generators.ts
|
|
2484
2482
|
import {
|
|
2485
2483
|
toCamelCase as toCamelCase8,
|
|
2486
|
-
isAbiTuple as
|
|
2484
|
+
isAbiTuple as isAbiTuple4
|
|
2487
2485
|
} from "@secondlayer/stacks/clarity";
|
|
2488
2486
|
function toPascalCase(str) {
|
|
2489
2487
|
const camel = toCamelCase8(str);
|
|
@@ -2539,27 +2537,16 @@ function generateDataVarHelper(variable, contractId) {
|
|
|
2539
2537
|
}`;
|
|
2540
2538
|
}
|
|
2541
2539
|
function getMapKeyType(keyType) {
|
|
2542
|
-
if (
|
|
2540
|
+
if (isAbiTuple4(keyType)) {
|
|
2543
2541
|
const fields = keyType.tuple.map((field) => `${toCamelCase8(field.name)}: ${getTypeForArg({ type: field.type })}`).join("; ");
|
|
2544
2542
|
return `{ ${fields} }`;
|
|
2545
2543
|
}
|
|
2546
2544
|
return getTypeForArg({ type: keyType });
|
|
2547
2545
|
}
|
|
2548
|
-
function generateMapKeyConversion2(keyType) {
|
|
2549
|
-
if (isAbiTuple3(keyType)) {
|
|
2550
|
-
const fields = keyType.tuple.map((field) => {
|
|
2551
|
-
const camelFieldName = toCamelCase8(field.name);
|
|
2552
|
-
const fieldConversion = generateClarityConversion(`key.${camelFieldName}`, { type: field.type });
|
|
2553
|
-
return `"${field.name}": ${fieldConversion}`;
|
|
2554
|
-
}).join(", ");
|
|
2555
|
-
return `Cl.tuple({ ${fields} })`;
|
|
2556
|
-
}
|
|
2557
|
-
return generateClarityConversion("key", { type: keyType });
|
|
2558
|
-
}
|
|
2559
2546
|
function generateMapEntryHelper(map, contractId) {
|
|
2560
2547
|
const methodName = toCamelCase8(map.name);
|
|
2561
2548
|
const keyType = getMapKeyType(map.key);
|
|
2562
|
-
const keyConversion =
|
|
2549
|
+
const keyConversion = generateMapKeyConversion(map.key);
|
|
2563
2550
|
return `${methodName}: (key: ${keyType}) => {
|
|
2564
2551
|
return simnet.getMapEntry(
|
|
2565
2552
|
'${contractId}',
|
|
@@ -2755,5 +2742,5 @@ export {
|
|
|
2755
2742
|
PluginManager
|
|
2756
2743
|
};
|
|
2757
2744
|
|
|
2758
|
-
//# debugId=
|
|
2745
|
+
//# debugId=7A78469222B5E6D664756E2164756E21
|
|
2759
2746
|
//# sourceMappingURL=index.js.map
|