Browse Source

Add deploy script template

Armani Ferrante 4 years ago
parent
commit
989b1ea3bd
5 changed files with 65 additions and 26 deletions
  1. 35 16
      Cargo.lock
  2. 1 1
      Cargo.toml
  3. 7 3
      cli/src/main.rs
  4. 20 4
      cli/src/template.rs
  5. 2 2
      src/state.rs

+ 35 - 16
Cargo.lock

@@ -617,6 +617,12 @@ version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
 checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b"
 
 
+[[package]]
+name = "cpuid-bool"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
+
 [[package]]
 [[package]]
 name = "crc32fast"
 name = "crc32fast"
 version = "1.2.1"
 version = "1.2.1"
@@ -896,7 +902,7 @@ dependencies = [
  "ed25519",
  "ed25519",
  "rand",
  "rand",
  "serde",
  "serde",
- "sha2",
+ "sha2 0.8.2",
  "zeroize",
  "zeroize",
 ]
 ]
 
 
@@ -1538,7 +1544,7 @@ dependencies = [
  "digest 0.8.1",
  "digest 0.8.1",
  "hmac-drbg",
  "hmac-drbg",
  "rand",
  "rand",
- "sha2",
+ "sha2 0.8.2",
  "subtle 2.4.0",
  "subtle 2.4.0",
  "typenum",
  "typenum",
 ]
 ]
@@ -2626,6 +2632,19 @@ dependencies = [
  "opaque-debug 0.2.3",
  "opaque-debug 0.2.3",
 ]
 ]
 
 
+[[package]]
+name = "sha2"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e7aab86fe2149bad8c507606bdb3f4ef5e7b2380eb92350f56122cca72a42a8"
+dependencies = [
+ "block-buffer 0.9.0",
+ "cfg-if 1.0.0",
+ "cpuid-bool",
+ "digest 0.9.0",
+ "opaque-debug 0.3.0",
+]
+
 [[package]]
 [[package]]
 name = "sha3"
 name = "sha3"
 version = "0.9.1"
 version = "0.9.1"
@@ -2797,9 +2816,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-frozen-abi"
 name = "solana-frozen-abi"
-version = "1.5.0"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2511b9e46d30daa7bde24eb6330eb3808885573ceca99c550f4fc8d3e428785a"
+checksum = "0d0c1cf7dafbcf4e1e0a56b7b28848bdf41a5e3065e9763d3aae892027109956"
 dependencies = [
 dependencies = [
  "bs58",
  "bs58",
  "bv",
  "bv",
@@ -2809,7 +2828,7 @@ dependencies = [
  "rustc_version",
  "rustc_version",
  "serde",
  "serde",
  "serde_derive",
  "serde_derive",
- "sha2",
+ "sha2 0.9.2",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-logger",
  "solana-logger",
  "thiserror",
  "thiserror",
@@ -2817,9 +2836,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-frozen-abi-macro"
 name = "solana-frozen-abi-macro"
-version = "1.5.0"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f616e1d66cfb1d5f35d4677af1e5592dc4da2141e718ddf42c926ad47d4727f"
+checksum = "cb44325468e78e9e4535c90c656c36c953b42cd34ed4999d39f1d33b8780a545"
 dependencies = [
 dependencies = [
  "lazy_static",
  "lazy_static",
  "proc-macro2 1.0.24",
  "proc-macro2 1.0.24",
@@ -2830,9 +2849,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-logger"
 name = "solana-logger"
-version = "1.5.0"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c2be7d6ec2bd98cabae975b9eea0a418ae550f60188892d2190b8b0c9e8ae20"
+checksum = "b7a46715d2f6fda4697f640038fbd2a16645b10af81dbf2e5a19048c99b8a546"
 dependencies = [
 dependencies = [
  "env_logger",
  "env_logger",
  "lazy_static",
  "lazy_static",
@@ -2890,9 +2909,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-program"
 name = "solana-program"
-version = "1.5.0"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a7df63d84d4ba7f67365d179b9994f2690554f313e219f29810b4583077e066"
+checksum = "fb200f05cb93b01f6e9b2e0d94d240e7e5dfa0b14c4308713b236c01a525a0ef"
 dependencies = [
 dependencies = [
  "bincode",
  "bincode",
  "bs58",
  "bs58",
@@ -2910,7 +2929,7 @@ dependencies = [
  "serde",
  "serde",
  "serde_bytes",
  "serde_bytes",
  "serde_derive",
  "serde_derive",
- "sha2",
+ "sha2 0.9.2",
  "solana-frozen-abi",
  "solana-frozen-abi",
  "solana-frozen-abi-macro",
  "solana-frozen-abi-macro",
  "solana-logger",
  "solana-logger",
@@ -3032,7 +3051,7 @@ dependencies = [
  "serde_bytes",
  "serde_bytes",
  "serde_derive",
  "serde_derive",
  "serde_json",
  "serde_json",
- "sha2",
+ "sha2 0.8.2",
  "sha3",
  "sha3",
  "solana-crate-features",
  "solana-crate-features",
  "solana-frozen-abi",
  "solana-frozen-abi",
@@ -3045,9 +3064,9 @@ dependencies = [
 
 
 [[package]]
 [[package]]
 name = "solana-sdk-macro"
 name = "solana-sdk-macro"
-version = "1.5.0"
+version = "1.5.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "012a3f407ae5a2571c810592d72f86c87b4652aeeb8ed7e3082970af172d5ac6"
+checksum = "d463f2a24e75ca02f065ac2a9ac855f661c8d0f8917090514d65e4f82cdf05ab"
 dependencies = [
 dependencies = [
  "bs58",
  "bs58",
  "proc-macro2 1.0.24",
  "proc-macro2 1.0.24",
@@ -3392,7 +3411,7 @@ dependencies = [
  "pbkdf2",
  "pbkdf2",
  "rand",
  "rand",
  "rustc-hash",
  "rustc-hash",
- "sha2",
+ "sha2 0.8.2",
  "unicode-normalization",
  "unicode-normalization",
 ]
 ]
 
 

+ 1 - 1
Cargo.toml

@@ -19,7 +19,7 @@ anchor-attribute-program = { path = "./attribute/program", version = "0.0.0-alph
 anchor-attribute-state = { path = "./attribute/state", version = "0.0.0-alpha.0" }
 anchor-attribute-state = { path = "./attribute/state", version = "0.0.0-alpha.0" }
 anchor-derive-accounts = { path = "./derive/accounts", version = "0.0.0-alpha.0" }
 anchor-derive-accounts = { path = "./derive/accounts", version = "0.0.0-alpha.0" }
 serum-borsh = { version = "0.8.0-serum.1", features = ["serum-program"] }
 serum-borsh = { version = "0.8.0-serum.1", features = ["serum-program"] }
-solana-program = "1.4.3"
+solana-program = "=1.5.0"
 thiserror = "1.0.20"
 thiserror = "1.0.20"
 
 
 [workspace]
 [workspace]

+ 7 - 3
cli/src/main.rs

@@ -100,6 +100,11 @@ fn init(name: String) -> Result<()> {
     let mut mocha = File::create(&format!("tests/{}.js", name))?;
     let mut mocha = File::create(&format!("tests/{}.js", name))?;
     mocha.write_all(template::mocha(&name).as_bytes())?;
     mocha.write_all(template::mocha(&name).as_bytes())?;
 
 
+    // Build the migrations directory.
+    fs::create_dir("migrations")?;
+    let mut deploy = File::create("migrations/deploy.js")?;
+    deploy.write_all(&template::deploy_script().as_bytes())?;
+
     println!("{} initialized", name);
     println!("{} initialized", name);
 
 
     Ok(())
     Ok(())
@@ -138,7 +143,6 @@ fn new_program(name: &str) -> Result<()> {
     xargo_toml.write_all(template::xargo_toml().as_bytes())?;
     xargo_toml.write_all(template::xargo_toml().as_bytes())?;
     let mut lib_rs = File::create(&format!("programs/{}/src/lib.rs", name))?;
     let mut lib_rs = File::create(&format!("programs/{}/src/lib.rs", name))?;
     lib_rs.write_all(template::lib_rs(&name).as_bytes())?;
     lib_rs.write_all(template::lib_rs(&name).as_bytes())?;
-
     Ok(())
     Ok(())
 }
 }
 
 
@@ -400,10 +404,10 @@ fn run_hosted_deploy(url: &str, keypair: &str) -> Result<()> {
 
 
     let cur_dir = std::env::current_dir()?;
     let cur_dir = std::env::current_dir()?;
     let module_path = format!("{}/migrations/deploy.js", cur_dir.display());
     let module_path = format!("{}/migrations/deploy.js", cur_dir.display());
-    let deploy_script_str = template::deploy_script(url, &module_path);
+    let deploy_script_host_str = template::deploy_script_host(url, &module_path);
     std::env::set_current_dir(".anchor")?;
     std::env::set_current_dir(".anchor")?;
 
 
-    std::fs::write("deploy.js", deploy_script_str)?;
+    std::fs::write("deploy.js", deploy_script_host_str)?;
     if let Err(e) = std::process::Command::new("node")
     if let Err(e) = std::process::Command::new("node")
         .arg("deploy.js")
         .arg("deploy.js")
         .stdout(Stdio::inherit())
         .stdout(Stdio::inherit())

+ 20 - 4
cli/src/template.rs

@@ -34,10 +34,9 @@ anchor-lang = {{ git = "https://github.com/project-serum/anchor", features = ["d
     )
     )
 }
 }
 
 
-pub fn deploy_script(cluster_url: &str, script_path: &str) -> String {
+pub fn deploy_script_host(cluster_url: &str, script_path: &str) -> String {
     format!(
     format!(
         r#"
         r#"
-const serumCmn = require("@project-serum/common");
 const anchor = require('@project-serum/anchor');
 const anchor = require('@project-serum/anchor');
 
 
 // Deploy script defined by the user.
 // Deploy script defined by the user.
@@ -47,9 +46,9 @@ async function main() {{
     const url = "{1}";
     const url = "{1}";
     const preflightCommitment = 'recent';
     const preflightCommitment = 'recent';
     const connection = new anchor.web3.Connection(url, preflightCommitment);
     const connection = new anchor.web3.Connection(url, preflightCommitment);
-    const wallet = serumCmn.NodeWallet.local();
+    const wallet = anchor.Wallet.local();
 
 
-    const provider = new serumCmn.Provider(connection, wallet, {{
+    const provider = new anchor.Provider(connection, wallet, {{
         preflightCommitment,
         preflightCommitment,
         commitment: 'recent',
         commitment: 'recent',
     }});
     }});
@@ -63,6 +62,23 @@ main();
     )
     )
 }
 }
 
 
+pub fn deploy_script() -> String {
+    return r#"
+// Migrations are an early feature. Currently, they're nothing more than this
+// single deploy script that's invoked from the CLI, injecting a provider
+// configured from the workspace's Anchor.toml.
+
+const anchor = require("@project-serum/anchor");
+
+module.exports = async function (provider) {
+  // Configure client to use the provider.
+  anchor.setProvider(provider);
+
+  // Add your deploy script here.
+}
+"#
+    .to_string();
+}
 pub fn xargo_toml() -> String {
 pub fn xargo_toml() -> String {
     r#"[target.bpfel-unknown-unknown.dependencies.std]
     r#"[target.bpfel-unknown-unknown.dependencies.std]
 features = []"#
 features = []"#

+ 2 - 2
src/state.rs

@@ -1,6 +1,6 @@
 use crate::{
 use crate::{
-    AccountDeserialize, AccountSerialize, Accounts, AccountsExit, Context, CpiAccount,
-    ToAccountInfo, ToAccountInfos, ToAccountMetas,
+    AccountDeserialize, AccountSerialize, Accounts, AccountsExit, CpiAccount, ToAccountInfo,
+    ToAccountInfos, ToAccountMetas,
 };
 };
 use solana_program::account_info::AccountInfo;
 use solana_program::account_info::AccountInfo;
 use solana_program::entrypoint::ProgramResult;
 use solana_program::entrypoint::ProgramResult;