Loris Leiva 1 年之前
父節點
當前提交
1a9e910409

+ 1 - 1
template/anchor/base/program/Cargo.toml.njk

@@ -21,4 +21,4 @@ idl-build = ["anchor-lang/idl-build"]
 
 [dependencies]
 anchor-lang = "{{ anchorVersion }}"
-solana-program = "~{{ solanaVersion }}"
+solana-program = "~{{ solanaVersionWithoutPatch }}"

+ 2 - 2
template/base/.github/workflows/main.yml.njk

@@ -8,9 +8,9 @@ on:
 
 env:
   NODE_VERSION: 18
-  SOLANA_VERSION: 1.18.18
+  SOLANA_VERSION: {{ solanaVersion }}
 {% if programFramework === 'anchor' %}
-  ANCHOR_VERSION: 0.30.0
+  ANCHOR_VERSION: {{ anchorVersion }}
 {% endif %}
 
 jobs:

+ 3 - 3
template/clients/rust/clients/rust/Cargo.toml.njk

@@ -15,10 +15,10 @@ num-derive = "^0.3"
 num-traits = "^0.2"
 serde = { version = "^1.0", features = ["derive"], optional = true }
 serde_with = { version = "^3.0", optional = true }
-solana-program = "~{{ solanaVersion }}"
+solana-program = "~{{ solanaVersionWithoutPatch }}"
 thiserror = "^1.0"
 
 [dev-dependencies]
 assert_matches = "1.5.0"
-solana-program-test = "~{{ solanaVersion }}"
-solana-sdk = "~{{ solanaVersion }}"
+solana-program-test = "~{{ solanaVersionWithoutPatch }}"
+solana-sdk = "~{{ solanaVersionWithoutPatch }}"

+ 1 - 1
template/shank/base/program/Cargo.toml.njk

@@ -19,5 +19,5 @@ borsh = "^0.10"
 shank = "^0.4.2"
 num-derive = "^0.3"
 num-traits = "^0.2"
-solana-program = "~{{ solanaVersion }}"
+solana-program = "~{{ solanaVersionWithoutPatch }}"
 thiserror = "^1.0"

+ 23 - 1
utils/getRenderContext.ts

@@ -21,6 +21,7 @@ export type RenderContext = Omit<Inputs, 'programAddress' | 'solanaVersion'> & {
   packageManager: PackageManager;
   solanaVersion: string;
   solanaVersionDetected: string;
+  solanaVersionWithoutPatch: string;
   targetDirectory: string;
   templateDirectory: string;
   toolchain: string;
@@ -50,6 +51,10 @@ export function getRenderContext({
     inputs.solanaVersion,
     solanaVersionDetected
   );
+  const solanaVersionWithoutPatch = toMinorSolanaVersion(
+    language,
+    solanaVersion
+  );
   const toolchain = getToolchainFromSolanaVersion(solanaVersion);
 
   // Directories.
@@ -75,6 +80,7 @@ export function getRenderContext({
     programDirectory,
     solanaVersion,
     solanaVersionDetected,
+    solanaVersionWithoutPatch,
     targetDirectory,
     templateDirectory,
     toolchain,
@@ -96,7 +102,23 @@ function resolveSolanaVersion(
   inputVersion: string | undefined,
   detectedVersion: string
 ): string {
-  return inputVersion ?? toMinorSolanaVersion(language, detectedVersion);
+  if (!inputVersion) {
+    return detectedVersion;
+  }
+  if (!inputVersion.match(/^\d+\.\d+(\.\d+)?$/)) {
+    throw new Error(
+      language.errors.invalidSolanaVersion.replace('$version', inputVersion)
+    );
+  }
+  const versionSegments = inputVersion.split('.');
+  if (versionSegments.length === 3) {
+    return inputVersion;
+  }
+  const map: Record<string, string> = {
+    '1.17': '1.17.34',
+    '1.18': '1.18.18',
+  };
+  return map[inputVersion] ?? `${inputVersion}.0`;
 }
 
 function resolveAnchorVersion(detectedVersion: string | undefined): string {