diff --git a/Cargo.lock b/Cargo.lock index a76b167aff..261bac7a67 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -828,6 +828,7 @@ name = "disassembler" version = "0.1.0" dependencies = [ "leo-ast", + "leo-errors", "leo-span", "snarkvm", ] @@ -1443,7 +1444,6 @@ dependencies = [ "rand", "rand_chacha", "rand_core", - "reqwest", "retriever", "rusty-hook", "self_update 0.39.0", @@ -1605,16 +1605,6 @@ version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - [[package]] name = "minimal-lexical" version = "0.2.1" @@ -2165,7 +2155,6 @@ dependencies = [ "js-sys", "log", "mime", - "mime_guess", "native-tls", "once_cell", "percent-encoding", @@ -2197,6 +2186,7 @@ dependencies = [ "serde", "serde_json", "sha2", + "tempfile", "toml 0.8.6", "ureq", ] @@ -3795,15 +3785,6 @@ version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" -[[package]] -name = "unicase" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" -dependencies = [ - "version_check", -] - [[package]] name = "unicode-bidi" version = "0.3.13" diff --git a/Cargo.toml b/Cargo.toml index 91db79db88..715f3652d8 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -131,10 +131,6 @@ default-features = false [dependencies.rand_core] version = "0.6.4" -[dependencies.reqwest] -version = "0.11.22" -features = [ "blocking", "json", "multipart" ] - [dependencies.self_update] version = "0.39.0" features = [ "archive-zip" ] diff --git a/errors/README.md b/errors/README.md index a3bfcfaf63..392b6a83f1 100644 --- a/errors/README.md +++ b/errors/README.md @@ -73,3 +73,7 @@ When SnarkVM implements better error codes and messages, we can bubble them up. ### State The errors for the `leo-state` crate. Its error codes will range from 1_000-1_999 and be prefixed with the characters `STA`. + +### Utils + +The errors related to dependency retrieval in the `utils` crate. Its error codes will range from 10_000-10_999 and be prefixed with the characters `DEP`. diff --git a/errors/src/errors/cli/cli_errors.rs b/errors/src/errors/cli/cli_errors.rs index fbdc439ec2..66944ad01c 100644 --- a/errors/src/errors/cli/cli_errors.rs +++ b/errors/src/errors/cli/cli_errors.rs @@ -207,5 +207,11 @@ create_messages!( help: None, } + @formatted + failed_to_retrieve_dependencies { + args: (error: impl Display), + msg: format!("Failed to retrieve dependencies. {error}"), + help: None, + } ); diff --git a/errors/src/errors/mod.rs b/errors/src/errors/mod.rs index e890d7761b..a747a1bef6 100644 --- a/errors/src/errors/mod.rs +++ b/errors/src/errors/mod.rs @@ -50,9 +50,12 @@ pub use self::parser::*; /// Contains the Type Checker error definitions. pub mod type_checker; - pub use self::type_checker::*; +/// Contains the Utils error definitions. +pub mod utils; +pub use self::utils::*; + /// The LeoError type that contains all sub error types. /// This allows a unified error type throughout the Leo crates. #[derive(Debug, Error)] @@ -88,6 +91,9 @@ pub enum LeoError { /// not re-displaying an error. #[error("")] LastErrorCode(i32), + /// Represents a Utils Error in a Leo Error + #[error(transparent)] + UtilError(#[from] UtilError), /// Anyhow errors. #[error(transparent)] Anyhow(#[from] anyhow::Error), @@ -108,6 +114,7 @@ impl LeoError { TypeCheckerError(error) => error.error_code(), LoopUnrollerError(error) => error.error_code(), FlattenError(error) => error.error_code(), + UtilError(error) => error.error_code(), LastErrorCode(_) => unreachable!(), Anyhow(_) => unimplemented!(), // todo: implement error codes for snarkvm errors. } @@ -127,6 +134,7 @@ impl LeoError { TypeCheckerError(error) => error.exit_code(), LoopUnrollerError(error) => error.exit_code(), FlattenError(error) => error.exit_code(), + UtilError(error) => error.exit_code(), LastErrorCode(code) => *code, Anyhow(_) => unimplemented!(), // todo: implement exit codes for snarkvm errors. } diff --git a/errors/src/errors/utils/mod.rs b/errors/src/errors/utils/mod.rs new file mode 100644 index 0000000000..359148e096 --- /dev/null +++ b/errors/src/errors/utils/mod.rs @@ -0,0 +1,19 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Leo library. + +// The Leo library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Leo library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Leo library. If not, see . + +/// This module contains the Input error definitions. +pub mod util_errors; +pub use self::util_errors::*; diff --git a/errors/src/errors/utils/util_errors.rs b/errors/src/errors/utils/util_errors.rs new file mode 100644 index 0000000000..2de440a53b --- /dev/null +++ b/errors/src/errors/utils/util_errors.rs @@ -0,0 +1,77 @@ +// Copyright (C) 2019-2023 Aleo Systems Inc. +// This file is part of the Leo library. + +// The Leo library is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// The Leo library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with the Leo library. If not, see . + +use crate::create_messages; +use std::{ + error::Error as ErrorArg, + fmt::{Debug, Display}, +}; + +create_messages!( + /// InputError enum that represents all the errors for the `utils` crate. + UtilError, + code_mask: 10000i32, + code_prefix: "UTL", + + @formatted + util_file_io_error { + args: (error: impl ErrorArg), + msg: format!("File system io error: {error}"), + help: None, + } + + @formatted + toml_serizalization_error { + args: (error: impl ErrorArg), + msg: format!("TOML serialization error: {error}"), + help: None, + } + + @formatted + json_serialization_error { + args: (error: impl ErrorArg), + msg: format!("JSON serialization error: {error}"), + help: None, + } + + @formatted + snarkvm_parsing_error { + args: (), + msg: format!("SnarkVM failure to parse `.aleo` program"), + help: None, + } + + @formatted + circular_dependency_error { + args: (), + msg: format!("Circular dependency detected"), + help: None, + } + + @formatted + network_error { + args: (url: impl Display, status: impl Display), + msg: format!("Failed network request to {url}. Status: {status}"), + help: None, + } + + @formatted + duplicate_dependency_name_error { + args: (dependency: impl Display), + msg: format!("Duplicate dependency found: {dependency}"), + help: None, + } +); diff --git a/leo/cli/cli.rs b/leo/cli/cli.rs index c3105f3edb..30104068be 100644 --- a/leo/cli/cli.rs +++ b/leo/cli/cli.rs @@ -135,9 +135,10 @@ pub fn run_with_args(cli: CLI) -> Result<()> { } #[test] -pub fn build_test() -> Result<()> { +pub fn build_nested_test() -> Result<()> { use leo_span::symbol::create_session_if_not_set_then; - const BUILD_DIRECTORY: &str = "utils/tmp/project"; + use std::env; + const BUILD_DIRECTORY: &str = "utils/tmp/nested"; let cli = CLI { debug: false, @@ -145,41 +146,17 @@ pub fn build_test() -> Result<()> { command: Commands::Build { command: Build { options: Default::default() } }, path: Some(PathBuf::from(BUILD_DIRECTORY)), }; - create_session_if_not_set_then(|_| { - run_with_args(cli).expect("Failed to run build command"); - }); - Ok(()) -} -#[test] -pub fn build_super_simple_test() -> Result<()> { - use leo_span::symbol::create_session_if_not_set_then; - const BUILD_DIRECTORY: &str = "utils/tmp/super_simple"; - let cli = CLI { - debug: false, - quiet: false, - command: Commands::Build { command: Build { options: Default::default() } }, - path: Some(PathBuf::from(BUILD_DIRECTORY)), - }; + // Set $HOME to tmp directory so that tests do not modify users real home directory + let original_home = env::var("HOME").unwrap(); + env::set_var("HOME", "utils/tmp"); + create_session_if_not_set_then(|_| { run_with_args(cli).expect("Failed to run build command"); }); - Ok(()) -} -#[test] -pub fn build_nested_test() -> Result<()> { - use leo_span::symbol::create_session_if_not_set_then; - const BUILD_DIRECTORY: &str = "utils/tmp/nested"; + // Reset $HOME + env::set_var("HOME", original_home); - let cli = CLI { - debug: false, - quiet: false, - command: Commands::Build { command: Build { options: Default::default() } }, - path: Some(PathBuf::from(BUILD_DIRECTORY)), - }; - create_session_if_not_set_then(|_| { - run_with_args(cli).expect("Failed to run build command"); - }); Ok(()) } diff --git a/leo/cli/commands/build.rs b/leo/cli/commands/build.rs index 93acc414bb..305144dcec 100644 --- a/leo/cli/commands/build.rs +++ b/leo/cli/commands/build.rs @@ -232,10 +232,15 @@ fn compile_leo_file( }); // Retrieve dependencies from `program.json` - let mut retriever = Retriever::new(package_path); + let mut retriever = Retriever::new(package_path) + .map_err(|err| CliError::failed_to_retrieve_dependencies(err, Default::default()))?; // Only retrieve dependencies for main leo program - let stubs: IndexMap = if is_import { IndexMap::new() } else { retriever.retrieve() }; + let stubs: IndexMap = if is_import { + IndexMap::new() + } else { + retriever.retrieve().map_err(|err| CliError::failed_to_retrieve_dependencies(err, Default::default()))? + }; // Create a new instance of the Leo compiler. let mut compiler = Compiler::new( diff --git a/utils/disassembler/Cargo.toml b/utils/disassembler/Cargo.toml index 346445ba1e..16c7f2ffbd 100644 --- a/utils/disassembler/Cargo.toml +++ b/utils/disassembler/Cargo.toml @@ -14,4 +14,8 @@ version = "=1.10.0" [dependencies.leo-span] path = "../../compiler/span" -version = "1.9.3" +version = "1.10.0" + +[dependencies.leo-errors] +path = "../../errors" +version = "1.10.0" diff --git a/utils/disassembler/src/lib.rs b/utils/disassembler/src/lib.rs index 51e602b109..c7fb06e05b 100644 --- a/utils/disassembler/src/lib.rs +++ b/utils/disassembler/src/lib.rs @@ -22,6 +22,7 @@ use std::str::FromStr; type CurrentNetwork = Testnet3; use leo_ast::{FunctionStub, Identifier, ProgramId, Struct, Stub}; +use leo_errors::UtilError; pub fn disassemble, Command: CommandTrait>( program: ProgramCore, @@ -53,9 +54,11 @@ pub fn disassemble, Command: Comman } } -pub fn disassemble_from_str(program: String) -> Stub { - let program = Program::::from_str(&program); - disassemble(program.expect("Failed to parse program")) // TODO: Handle error +pub fn disassemble_from_str(program: String) -> Result { + match Program::::from_str(&program) { + Ok(p) => Ok(disassemble(p)), + Err(_) => Err(UtilError::snarkvm_parsing_error(Default::default())), + } } #[cfg(test)] diff --git a/utils/retriever/Cargo.toml b/utils/retriever/Cargo.toml index 7b2004dfaa..0059d2586d 100644 --- a/utils/retriever/Cargo.toml +++ b/utils/retriever/Cargo.toml @@ -5,15 +5,44 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[dependencies.serde] +version = "1.0" +features = [ "derive"] + +[dependencies.serde_json] +version = "1.0" + +[dependencies.leo-errors] +path = "../../errors" +version = "=1.10.0" + +[dependencies.indexmap] +version = "1.9" +features = [ "serde-1" ] + +[dependencies.leo-ast] +version = "1.9.4" +path = "../../compiler/ast" + +[dependencies.toml] +version = "0.8.6" + +[dependencies.disassembler] +version = "0.1.0" +path = "../disassembler" + +[dependencies.sha2] +version = "0.10.8" + +[dependencies.leo-span] +version = "1.9.4" +path = "../../compiler/span" + +[dependencies.ureq] +version = "2.7" + +[dependencies.leo-passes] +version = "1.9.4" +path = "../../compiler/passes" [dependencies] -serde = { version = "1.0.188", features = ["derive"] } -serde_json = "1.0.107" -leo-errors = {version = "1.9.4", path = "../../errors"} -indexmap = "1.9" -leo-ast = {version = "1.9.4", path = "../../compiler/ast"} -toml = "0.8.6" -disassembler = {version = "0.1.0", path = "../disassembler"} -sha2 = { version = "0.10.8", features = [] } -leo-span = {version = "1.9.4", path = "../../compiler/span"} -ureq = "2.7" -leo-passes = {version = "1.9.4", path = "../../compiler/passes"} +tempfile = "3.8.1" \ No newline at end of file diff --git a/utils/retriever/src/lib.rs b/utils/retriever/src/lib.rs index d95d207a66..695097723c 100644 --- a/utils/retriever/src/lib.rs +++ b/utils/retriever/src/lib.rs @@ -17,11 +17,13 @@ use disassembler::disassemble_from_str; use indexmap::{IndexMap, IndexSet}; use leo_ast::Stub; +use leo_errors::UtilError; use leo_passes::{common::DiGraph, DiGraphError}; use leo_span::Symbol; use serde::{Deserialize, Serialize}; use sha2::{Digest, Sha256}; use std::{ + env, fmt, fs, fs::File, @@ -30,7 +32,6 @@ use std::{ }; const ALEO_EXPLORER_URL: &str = "https://api.explorer.aleo.org/v1"; -const ALEO_REGISTRY_DIRECTORY: &str = "../tmp/.aleo"; // Struct representation of program's `program.json` specification #[derive(Debug, Clone, Serialize, Deserialize)] @@ -107,20 +108,21 @@ struct LockFileEntry { impl Retriever { // Initialize a new Retriever - pub fn new(path: &Path) -> Self { + pub fn new(path: &Path) -> Result { let lock_path = path.to_path_buf().join("leo.lock"); if !lock_path.exists() { - std::fs::create_dir_all(path).expect("Failed to project directory."); - File::create(lock_path.clone()).expect("Failed to create `leo.lock`"); + std::fs::create_dir_all(path).map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; // TODO: How to get rid of requirement for span? + File::create(lock_path.clone()).map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; } - let mut file = File::open(lock_path).expect("Failed to open `leo.lock`."); + let mut file = File::open(lock_path).map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; // Read `leo.lock` into a string, and deserialize from TOML to a `LockFile` struct. let mut lock_file_contents = String::new(); - file.read_to_string(&mut lock_file_contents).expect("Failed to read `leo.lock`."); - let parsed_lock_file: IndexMap> = - toml::from_str(&lock_file_contents).expect("Failed to parse `leo.lock`."); + file.read_to_string(&mut lock_file_contents) + .map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; + let parsed_lock_file: IndexMap> = toml::from_str(&lock_file_contents) + .map_err(|err| UtilError::toml_serizalization_error(err, Default::default()))?; // Construct a mapping of all programs in the `leo.lock` file to their specification. let mut lock_file_map = IndexMap::new(); @@ -153,28 +155,29 @@ impl Retriever { } // Open `program.json` which is located at `package_path/program.json`. - let mut file = File::open(path.join("program.json")).expect("Failed to open `program.json`."); + let mut file = File::open(path.join("program.json")) + .map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; // Read the file content let mut content = String::new(); - file.read_to_string(&mut content).expect("Failed to read `program.json`."); + file.read_to_string(&mut content).map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; // Deserialize the content into Program - let program_data: ProgramSpecification = - serde_json::from_str(&content).expect("Failed to deserialize `program.json`."); + let program_data: ProgramSpecification = serde_json::from_str(&content) + .map_err(|err| UtilError::json_serialization_error(err, Default::default()))?; - Self { + Ok(Self { programs: program_data.dependencies, path: path.to_path_buf(), stubs: IndexMap::new(), lock_file: lock_file_map, explored: IndexSet::new(), dependency_graph: DiGraph::new(IndexSet::new()), - } + }) } // Retrieve all dependencies for a program - pub fn retrieve(&mut self) -> IndexMap { + pub fn retrieve(&mut self) -> Result, UtilError> { let mut programs_to_retrieve = self.programs.clone(); while !programs_to_retrieve.is_empty() { @@ -186,14 +189,14 @@ impl Retriever { self.path.clone(), program.name.clone(), program.network.clone(), - )), + )?), Location::Git => panic!("Location::Git is not supported yet"), Location::Local => panic!("Location::Local is not supported yet"), } // Mark as visited if !self.explored.insert(program.clone()) { - panic!("Should not ever explore same dependency twice.") + Err(UtilError::circular_dependency_error(Default::default()))?; } } @@ -209,11 +212,7 @@ impl Retriever { // Add stub to list of stubs if let Some(existing) = self.stubs.insert(stub.stub_id.name.name, stub.clone()) { - panic!( - "Should never be creating two stubs from the same program name. Existing: {:?}, New: {:?}", - existing, - stub.clone() - ) + Err(UtilError::duplicate_dependency_name_error(existing.stub_id.name.name, Default::default()))?; } // Update lock file @@ -226,16 +225,16 @@ impl Retriever { // Check for dependency cycles match self.dependency_graph.post_order() { Ok(_) => (), - Err(DiGraphError::CycleDetected(cycle)) => panic!("Dependency cycle detected: {:?}", cycle), + Err(DiGraphError::CycleDetected(_)) => Err(UtilError::circular_dependency_error(Default::default()))?, } // Write the finalized dependency information to `leo.lock` - self.write_lock_file(); - self.stubs.clone() + self.write_lock_file()?; + Ok(self.stubs.clone()) } // Write lock file - fn write_lock_file(&self) { + fn write_lock_file(&self) -> Result<(), UtilError> { // Create struct representation of lock file let mut lock_file: IndexMap> = IndexMap::new(); let packages: Vec = self @@ -252,43 +251,55 @@ impl Retriever { lock_file.insert("package".to_string(), packages); // Serialize the data to a TOML string - let toml_str = toml::to_string(&lock_file).expect("Failed to serialize lock file."); + let toml_str = + toml::to_string(&lock_file).map_err(|err| UtilError::toml_serizalization_error(err, Default::default()))?; // Write the TOML string to a file - std::fs::write(self.path.join("leo.lock"), toml_str).expect("Failed to write file to leo.lock"); + std::fs::write(self.path.join("leo.lock"), toml_str) + .map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; + Ok(()) } } // Retrieve from network -fn retrieve_from_network(project_path: PathBuf, name: String, network: Network) -> (Stub, Program, LockContents) { +fn retrieve_from_network( + project_path: PathBuf, + name: String, + network: Network, +) -> Result<(Stub, Program, LockContents), UtilError> { // Check if the file is already cached in `~/.aleo/registry/{network}/{program}` - let path_str = &format!("{}/{}/{}", ALEO_REGISTRY_DIRECTORY, network, name); + let registry_directory = &format!("{}/.aleo/registry/{}", env::var("HOME").unwrap(), network); + let path_str = &format!("{}/{}", registry_directory, name); let path = Path::new(&path_str); + dbg!(path); let mut file_str: String; if !path.exists() { // Create directories along the way if they don't exist - std::fs::create_dir_all(Path::new(&format!("{}/{}", ALEO_REGISTRY_DIRECTORY, network))) - .expect("Failed to create directory `~/.aleo/registry/{network}`."); + std::fs::create_dir_all(Path::new(®istry_directory)) + .map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; + // TODO: Refactor this so that we do the match statement here (instead of in `Retriever::retrieve()`) // Fetch from network println!("Retrieving {} from {:?}.", name.clone(), network.clone()); - file_str = fetch_from_network(name.clone(), network.clone()); + file_str = fetch_from_network(name.clone(), network.clone())?; file_str = file_str.replace("\\n", "\n").replace('\"', ""); println!("Successfully retrieved {} from {:?}!", name, network); // Write file to cache - std::fs::write(path, file_str.clone().replace("\\n", "\n")).expect("Failed to write file to ~/.aleo"); + std::fs::write(path, file_str.clone().replace("\\n", "\n")) + .map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; } else { // Read file from cache - file_str = fs::read_to_string(path).expect("Failed to read file."); + file_str = fs::read_to_string(path).map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; } // Copy the file into build directory. We can assume build directory exists because of its initialization in `leo/cli/commands/build.rs`. let import_dir = project_path.join("build/imports"); let import_dir_path = import_dir.as_path(); - std::fs::create_dir_all(import_dir_path).expect("Failed to create directory `~/.aleo/registry/{network}`."); + std::fs::create_dir_all(import_dir_path).map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; let build_location = PathBuf::from(import_dir_path).join(name.clone()); - std::fs::write(build_location, file_str.clone()).expect("Failed to write file to build/imports."); + std::fs::write(build_location, file_str.clone()) + .map_err(|err| UtilError::util_file_io_error(err, Default::default()))?; // Hash the file contents let mut hasher = Sha256::new(); @@ -296,10 +307,10 @@ fn retrieve_from_network(project_path: PathBuf, name: String, network: Network) let hash = hasher.finalize(); // Disassemble into Stub - let stub: Stub = disassemble_from_str(file_str); + let stub: Stub = disassemble_from_str(file_str)?; // Create entry for leo.lock - ( + Ok(( stub.clone(), Program { name: name.clone(), location: Location::Network, network: network.clone() }, LockContents { @@ -315,13 +326,17 @@ fn retrieve_from_network(project_path: PathBuf, name: String, network: Network) .collect(), checksum: format!("{hash:x}"), }, - ) + )) } -fn fetch_from_network(program: String, network: Network) -> String { +fn fetch_from_network(program: String, network: Network) -> Result { let url = format!("{}/{}/program/{}", ALEO_EXPLORER_URL, network.clone(), program); let response = ureq::get(&url.clone()).call().unwrap(); - if response.status() == 200 { response.into_string().unwrap() } else { panic!("Failed to fetch from {url}") } + if response.status() == 200 { + Ok(response.into_string().unwrap()) + } else { + Err(UtilError::network_error(url, response.status(), Default::default())) + } } #[cfg(test)] @@ -330,43 +345,20 @@ mod tests { use leo_span::symbol::create_session_if_not_set_then; #[test] - fn basic_test() { - const BUILD_DIRECTORY: &str = "../tmp/project"; - create_session_if_not_set_then(|_| { - let build_dir = PathBuf::from(BUILD_DIRECTORY); - let mut retriever = Retriever::new(&build_dir); - retriever.retrieve(); - }); - } - - #[test] - fn simple_test() { - const BUILD_DIRECTORY: &str = "../tmp/simple"; - create_session_if_not_set_then(|_| { - let build_dir = PathBuf::from(BUILD_DIRECTORY); - let mut retriever = Retriever::new(&build_dir); - retriever.retrieve(); - }); - } - #[test] - fn super_simple_test() { - dbg!(std::env::current_dir().unwrap()); - const BUILD_DIRECTORY: &str = "../tmp/super_simple"; - create_session_if_not_set_then(|_| { - let build_dir = PathBuf::from(BUILD_DIRECTORY); - let mut retriever = Retriever::new(&build_dir); - retriever.retrieve(); - }); - } + fn temp_dir_test() { + // Set $HOME to tmp directory so that tests do not modify users real home directory + let original_home = env::var("HOME").unwrap(); + env::set_var("HOME", "../tmp"); - #[test] - fn nested_test() { - dbg!(std::env::current_dir().unwrap()); + // Test pulling nested dependencies from network const BUILD_DIRECTORY: &str = "../tmp/nested"; create_session_if_not_set_then(|_| { let build_dir = PathBuf::from(BUILD_DIRECTORY); - let mut retriever = Retriever::new(&build_dir); - retriever.retrieve(); + let mut retriever = Retriever::new(&build_dir).expect("Failed to build retriever"); + retriever.retrieve().expect("failed to retrieve"); }); + + // Reset $HOME + env::set_var("HOME", original_home); } } diff --git a/utils/tmp/.aleo/registry/testnet3/nested_example_layer_0.aleo b/utils/tmp/.aleo/registry/testnet3/nested_example_layer_0.aleo new file mode 100644 index 0000000000..c1532ce30a --- /dev/null +++ b/utils/tmp/.aleo/registry/testnet3/nested_example_layer_0.aleo @@ -0,0 +1,10 @@ +import nested_example_layer_2.aleo; +import nested_example_layer_1.aleo; + +program nested_example_layer_0.aleo; + +function main: + input r0 as u32.public; + input r1 as u32.private; + call nested_example_layer_1.aleo/external_function r0 r1 into r2; + output r2 as u32.private; diff --git a/utils/tmp/.aleo/registry/testnet3/nested_example_layer_1.aleo b/utils/tmp/.aleo/registry/testnet3/nested_example_layer_1.aleo new file mode 100644 index 0000000000..4efaf63929 --- /dev/null +++ b/utils/tmp/.aleo/registry/testnet3/nested_example_layer_1.aleo @@ -0,0 +1,9 @@ +import nested_example_layer_2.aleo; + +program nested_example_layer_1.aleo; + +function external_function: + input r0 as u32.public; + input r1 as u32.private; + call nested_example_layer_2.aleo/external_nested_function r0 r1 into r2; + output r2 as u32.private; diff --git a/utils/tmp/.aleo/registry/testnet3/nested_example_layer_2.aleo b/utils/tmp/.aleo/registry/testnet3/nested_example_layer_2.aleo new file mode 100644 index 0000000000..459b896b67 --- /dev/null +++ b/utils/tmp/.aleo/registry/testnet3/nested_example_layer_2.aleo @@ -0,0 +1,7 @@ +program nested_example_layer_2.aleo; + +function external_nested_function: + input r0 as u32.public; + input r1 as u32.private; + add r0 r1 into r2; + output r2 as u32.private; diff --git a/utils/tmp/.aleo/testnet3/artgo_aigc_v1_3.aleo b/utils/tmp/.aleo/testnet3/artgo_aigc_v1_3.aleo deleted file mode 100644 index 1e8364326e..0000000000 --- a/utils/tmp/.aleo/testnet3/artgo_aigc_v1_3.aleo +++ /dev/null @@ -1,371 +0,0 @@ -import credits.aleo; - -program artgo_aigc_v1_3.aleo; - -struct Field2: - first as field; - second as field; - -struct NftHash: - minter as address; - prompt as Field2; - nonce as field; - -struct NftInfo: - holder as address; - minter as address; - hash as field; - uri as Field2; - -struct Order: - holder as address; - nft_id as field; - order_type as u8; - amount as u64; - status as u8; - deadline as field; - -struct Bid: - bidder as address; - nft_id as field; - amount as u64; - -record BidRecord: - owner as address.private; - bid_type as u8.private; - bidder as address.private; - nft_id as field.private; - amount as u64.private; - -record Nft: - owner as address.private; - minter as address.private; - prompt as Field2.private; - nonce as field.private; - uri as Field2.private; - -mapping nfts: - key as field.public; - value as NftInfo.public; - -mapping tokenId: - key as boolean.public; - value as field.public; - -mapping admin: - key as boolean.public; - value as address.public; - -mapping fees: - key as boolean.public; - value as u64.public; - -mapping orders: - key as field.public; - value as Order.public; - -mapping bids: - key as field.public; - value as Bid.public; - -function mint_nft: - input r0 as Field2.private; - input r1 as Field2.public; - input r2 as field.public; - cast self.caller r0 r2 into r3 as NftHash; - hash.bhp256 r3 into r4 as field; - cast self.caller self.caller r0 r2 r1 into r5 as Nft.record; - async mint_nft self.caller r4 r1 into r6; - output r5 as Nft.record; - output r6 as artgo_aigc_v1_3.aleo/mint_nft.future; - -finalize mint_nft: - input r0 as address.public; - input r1 as field.public; - input r2 as Field2.public; - get.or_use tokenId[true] 1field into r3; - add r3 1field into r4; - set r4 into tokenId[true]; - cast r0 r0 r1 r2 into r5 as NftInfo; - set r5 into nfts[r3]; - -function transfer_private_nft: - input r0 as field.private; - input r1 as Nft.record; - input r2 as address.private; - is.eq r1.owner self.caller into r3; - assert.eq r3 true ; - cast r1.minter r1.prompt r1.nonce into r4 as NftHash; - hash.bhp256 r4 into r5 as field; - cast r2 r1.minter r1.prompt r1.nonce r1.uri into r6 as Nft.record; - async transfer_private_nft r0 r5 r1.uri r2 into r7; - output r6 as Nft.record; - output r7 as artgo_aigc_v1_3.aleo/transfer_private_nft.future; - -finalize transfer_private_nft: - input r0 as field.public; - input r1 as field.public; - input r2 as Field2.public; - input r3 as address.public; - get nfts[r0] into r4; - assert.eq r4.hash r1 ; - assert.eq r4.uri r2 ; - cast r3 r4.minter r4.hash r4.uri into r5 as NftInfo; - set r5 into nfts[r0]; - -function place_order: - input r0 as field.public; - input r1 as Nft.record; - input r2 as u8.public; - input r3 as u64.public; - input r4 as field.public; - input r5 as address.public; - is.eq r2 1u8 into r6; - assert.eq r6 true ; - gt r3 0u64 into r7; - lte r3 18446744073709551615u64 into r8; - and r7 r8 into r9; - assert.eq r9 true ; - cast r1.minter r1.prompt r1.nonce into r10 as NftHash; - hash.bhp256 r10 into r11 as field; - cast self.caller r0 r2 r3 1u8 0field into r12 as Order; - cast r5 r1.minter r1.prompt r1.nonce r1.uri into r13 as Nft.record; - async place_order r5 r0 r11 r1.uri r12 into r14; - output r13 as Nft.record; - output r14 as artgo_aigc_v1_3.aleo/place_order.future; - -finalize place_order: - input r0 as address.public; - input r1 as field.public; - input r2 as field.public; - input r3 as Field2.public; - input r4 as Order.public; - contains admin[true] into r5; - assert.eq r5 true ; - get admin[true] into r6; - assert.eq r6 r0 ; - get nfts[r1] into r7; - assert.eq r7.hash r2 ; - assert.eq r7.uri r3 ; - contains fees[true] into r8; - assert.eq r8 true ; - get fees[true] into r9; - gte r4.amount r9 into r10; - assert.eq r10 true ; - contains orders[r1] into r11; - not r11 into r12; - assert.eq r12 true ; - set r4 into orders[r1]; - -function update_order: - input r0 as field.public; - input r1 as u64.public; - gt r1 0u64 into r2; - lte r1 18446744073709551615u64 into r3; - and r2 r3 into r4; - assert.eq r4 true ; - async update_order self.caller r0 r1 into r5; - output r5 as artgo_aigc_v1_3.aleo/update_order.future; - -finalize update_order: - input r0 as address.public; - input r1 as field.public; - input r2 as u64.public; - get orders[r1] into r3; - is.eq r3.status 1u8 into r4; - assert.eq r4 true ; - is.eq r0 r3.holder into r5; - assert.eq r5 true ; - contains fees[true] into r6; - assert.eq r6 true ; - get fees[true] into r7; - gte r2 r7 into r8; - assert.eq r8 true ; - cast r3.holder r3.nft_id r3.order_type r2 r3.status r3.deadline into r9 as Order; - set r9 into orders[r1]; - -function cancel_order: - input r0 as u64.public; - input r1 as field.public; - input r2 as address.public; - cast r2 2u8 self.caller r1 0u64 into r3 as BidRecord.record; - call credits.aleo/transfer_public r2 r0 into r4; - async cancel_order r4 self.caller r1 r0 r2 into r5; - output r3 as BidRecord.record; - output r5 as artgo_aigc_v1_3.aleo/cancel_order.future; - -finalize cancel_order: - input r0 as credits.aleo/transfer_public.future; - input r1 as address.public; - input r2 as field.public; - input r3 as u64.public; - input r4 as address.public; - await r0; - contains fees[true] into r5; - assert.eq r5 true ; - get fees[true] into r6; - assert.eq r6 r3 ; - get orders[r2] into r7; - is.eq r7.status 1u8 into r8; - assert.eq r8 true ; - is.eq r1 r7.holder into r9; - assert.eq r9 true ; - contains admin[true] into r10; - assert.eq r10 true ; - get admin[true] into r11; - assert.eq r11 r4 ; - cast r7.holder r7.nft_id r7.order_type r7.amount 2u8 r7.deadline into r12 as Order; - set r12 into orders[r2]; - -function handle_cancel_order: - input r0 as field.public; - input r1 as Nft.record; - input r2 as address.public; - cast r2 r1.minter r1.prompt r1.nonce r1.uri into r3 as Nft.record; - cast r1.minter r1.prompt r1.nonce into r4 as NftHash; - hash.bhp256 r4 into r5 as field; - async handle_cancel_order r0 r5 r1.uri r2 self.caller into r6; - output r3 as Nft.record; - output r6 as artgo_aigc_v1_3.aleo/handle_cancel_order.future; - -finalize handle_cancel_order: - input r0 as field.public; - input r1 as field.public; - input r2 as Field2.public; - input r3 as address.public; - input r4 as address.public; - contains admin[true] into r5; - assert.eq r5 true ; - get admin[true] into r6; - assert.eq r6 r4 ; - get nfts[r0] into r7; - assert.eq r7.hash r1 ; - assert.eq r7.uri r2 ; - get orders[r0] into r8; - is.eq r8.status 2u8 into r9; - assert.eq r9 true ; - is.eq r3 r8.holder into r10; - assert.eq r10 true ; - remove bids[r0]; - remove orders[r0]; - -function bid_order: - input r0 as field.public; - input r1 as u64.public; - input r2 as address.public; - gt r1 0u64 into r3; - lte r1 18446744073709551615u64 into r4; - and r3 r4 into r5; - assert.eq r5 true ; - cast r2 1u8 self.caller r0 r1 into r6 as BidRecord.record; - call credits.aleo/transfer_public r2 r1 into r7; - async bid_order r7 self.caller r0 r1 r2 into r8; - output r6 as BidRecord.record; - output r8 as artgo_aigc_v1_3.aleo/bid_order.future; - -finalize bid_order: - input r0 as credits.aleo/transfer_public.future; - input r1 as address.public; - input r2 as field.public; - input r3 as u64.public; - input r4 as address.public; - await r0; - contains admin[true] into r5; - assert.eq r5 true ; - get admin[true] into r6; - assert.eq r6 r4 ; - cast r1 r2 r3 into r7 as Bid; - set r7 into bids[r2]; - contains orders[r2] into r8; - assert.eq r8 true ; - get orders[r2] into r9; - is.eq r9.status 1u8 into r10; - assert.eq r10 true ; - gte r3 r9.amount into r11; - assert.eq r11 true ; - cast r9.holder r9.nft_id r9.order_type r9.amount 3u8 0field into r12 as Order; - set r12 into orders[r2]; - -function finish_order: - input r0 as field.public; - input r1 as Nft.record; - input r2 as address.public; - input r3 as u64.public; - input r4 as address.public; - input r5 as u64.public; - input r6 as address.public; - gte r5 r3 into r7; - lte r5 18446744073709551615u64 into r8; - and r7 r8 into r9; - assert.eq r9 true ; - assert.eq self.caller r6 ; - sub r5 r3 into r10; - call credits.aleo/transfer_public r2 r10 into r11; - cast r1.minter r1.prompt r1.nonce into r12 as NftHash; - hash.bhp256 r12 into r13 as field; - cast r4 r1.minter r1.prompt r1.nonce r1.uri into r14 as Nft.record; - async finish_order r11 r0 r2 r13 r1.uri r4 r5 r3 r6 into r15; - output r14 as Nft.record; - output r15 as artgo_aigc_v1_3.aleo/finish_order.future; - -finalize finish_order: - input r0 as credits.aleo/transfer_public.future; - input r1 as field.public; - input r2 as address.public; - input r3 as field.public; - input r4 as Field2.public; - input r5 as address.public; - input r6 as u64.public; - input r7 as u64.public; - input r8 as address.public; - await r0; - contains admin[true] into r9; - assert.eq r9 true ; - get admin[true] into r10; - assert.eq r10 r8 ; - contains fees[true] into r11; - assert.eq r11 true ; - get fees[true] into r12; - assert.eq r12 r7 ; - contains orders[r1] into r13; - assert.eq r13 true ; - get orders[r1] into r14; - assert.eq r14.status 3u8 ; - get nfts[r1] into r15; - assert.eq r15.hash r3 ; - assert.eq r15.uri r4 ; - assert.eq r15.holder r2 ; - contains bids[r1] into r16; - assert.eq r16 true ; - get bids[r1] into r17; - assert.eq r17.bidder r5 ; - is.eq r17.amount r6 into r18; - assert.eq r18 true ; - cast r5 r15.minter r15.hash r15.uri into r19 as NftInfo; - set r19 into nfts[r1]; - remove bids[r1]; - remove orders[r1]; - -function set_admin: - input r0 as address.private; - async set_admin self.caller r0 into r1; - output r1 as artgo_aigc_v1_3.aleo/set_admin.future; - -finalize set_admin: - input r0 as address.public; - input r1 as address.public; - get.or_use admin[true] aleo12n3kz2wzrljvhp9zkn9zety54wz8mlmlakzzkrs6znaz028wjczqpe8x3j into r2; - assert.eq r2 r0 ; - set r1 into admin[true]; - -function set_fee: - input r0 as u64.private; - async set_fee self.caller r0 into r1; - output r1 as artgo_aigc_v1_3.aleo/set_fee.future; - -finalize set_fee: - input r0 as address.public; - input r1 as u64.public; - get admin[true] into r2; - assert.eq r0 r2 ; - set r1 into fees[true]; diff --git a/utils/tmp/.aleo/testnet3/credits.aleo b/utils/tmp/.aleo/testnet3/credits.aleo deleted file mode 100644 index bdb2115699..0000000000 --- a/utils/tmp/.aleo/testnet3/credits.aleo +++ /dev/null @@ -1,312 +0,0 @@ -program credits.aleo; - -mapping committee: - key as address.public; - value as committee_state.public; - -struct committee_state: - microcredits as u64; - is_open as boolean; - -mapping bonded: - key as address.public; - value as bond_state.public; - -struct bond_state: - validator as address; - microcredits as u64; - -mapping unbonding: - key as address.public; - value as unbond_state.public; - -struct unbond_state: - microcredits as u64; - height as u32; - -mapping account: - key as address.public; - value as u64.public; - -record credits: - owner as address.private; - microcredits as u64.private; - -function bond_public: - input r0 as address.public; - input r1 as u64.public; - gte r1 1000000u64 into r2; - assert.eq r2 true ; - async bond_public self.caller r0 r1 into r3; - output r3 as credits.aleo/bond_public.future; - -finalize bond_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - is.eq r0 r1 into r3; - branch.eq r3 true to bond_validator; - branch.eq r3 false to bond_delegator; - position bond_validator; - cast 0u64 true into r4 as committee_state; - get.or_use committee[r0] r4 into r5; - assert.eq r5.is_open true ; - add r5.microcredits r2 into r6; - cast r6 r5.is_open into r7 as committee_state; - cast r1 0u64 into r8 as bond_state; - get.or_use bonded[r0] r8 into r9; - assert.eq r9.validator r1 ; - add r9.microcredits r2 into r10; - gte r10 1000000000000u64 into r11; - assert.eq r11 true ; - cast r1 r10 into r12 as bond_state; - get account[r0] into r13; - sub r13 r2 into r14; - set r7 into committee[r0]; - set r12 into bonded[r0]; - set r14 into account[r0]; - branch.eq true true to end; - position bond_delegator; - contains committee[r0] into r15; - assert.eq r15 false ; - get committee[r1] into r16; - assert.eq r16.is_open true ; - add r16.microcredits r2 into r17; - cast r17 r16.is_open into r18 as committee_state; - cast r1 0u64 into r19 as bond_state; - get.or_use bonded[r0] r19 into r20; - assert.eq r20.validator r1 ; - add r20.microcredits r2 into r21; - gte r21 10000000u64 into r22; - assert.eq r22 true ; - cast r1 r21 into r23 as bond_state; - get account[r0] into r24; - sub r24 r2 into r25; - set r18 into committee[r1]; - set r23 into bonded[r0]; - set r25 into account[r0]; - position end; - -function unbond_public: - input r0 as u64.public; - async unbond_public self.caller r0 into r1; - output r1 as credits.aleo/unbond_public.future; - -finalize unbond_public: - input r0 as address.public; - input r1 as u64.public; - cast 0u64 0u32 into r2 as unbond_state; - get.or_use unbonding[r0] r2 into r3; - add block.height 360u32 into r4; - contains committee[r0] into r5; - branch.eq r5 true to unbond_validator; - branch.eq r5 false to unbond_delegator; - position unbond_validator; - get committee[r0] into r6; - sub r6.microcredits r1 into r7; - get bonded[r0] into r8; - assert.eq r8.validator r0 ; - sub r8.microcredits r1 into r9; - gte r9 1000000000000u64 into r10; - branch.eq r10 true to decrement_validator; - branch.eq r10 false to remove_validator; - position decrement_validator; - cast r7 r6.is_open into r11 as committee_state; - set r11 into committee[r0]; - cast r0 r9 into r12 as bond_state; - set r12 into bonded[r0]; - add r3.microcredits r1 into r13; - cast r13 r4 into r14 as unbond_state; - set r14 into unbonding[r0]; - branch.eq true true to end; - position remove_validator; - assert.eq r6.microcredits r8.microcredits ; - remove committee[r0]; - remove bonded[r0]; - add r3.microcredits r8.microcredits into r15; - cast r15 r4 into r16 as unbond_state; - set r16 into unbonding[r0]; - branch.eq true true to end; - position unbond_delegator; - get bonded[r0] into r17; - sub r17.microcredits r1 into r18; - gte r18 10000000u64 into r19; - branch.eq r19 true to decrement_delegator; - branch.eq r19 false to remove_delegator; - position decrement_delegator; - get committee[r17.validator] into r20; - sub r20.microcredits r1 into r21; - cast r21 r20.is_open into r22 as committee_state; - set r22 into committee[r17.validator]; - cast r17.validator r18 into r23 as bond_state; - set r23 into bonded[r0]; - add r3.microcredits r1 into r24; - cast r24 r4 into r25 as unbond_state; - set r25 into unbonding[r0]; - branch.eq true true to end; - position remove_delegator; - get committee[r17.validator] into r26; - sub r26.microcredits r17.microcredits into r27; - cast r27 r26.is_open into r28 as committee_state; - set r28 into committee[r17.validator]; - remove bonded[r0]; - add r3.microcredits r17.microcredits into r29; - cast r29 r4 into r30 as unbond_state; - set r30 into unbonding[r0]; - position end; - -function unbond_delegator_as_validator: - input r0 as address.public; - async unbond_delegator_as_validator self.caller r0 into r1; - output r1 as credits.aleo/unbond_delegator_as_validator.future; - -finalize unbond_delegator_as_validator: - input r0 as address.public; - input r1 as address.public; - get committee[r0] into r2; - assert.eq r2.is_open false ; - contains committee[r1] into r3; - assert.eq r3 false ; - get bonded[r1] into r4; - assert.eq r4.validator r0 ; - sub r2.microcredits r4.microcredits into r5; - cast r5 r2.is_open into r6 as committee_state; - cast 0u64 0u32 into r7 as unbond_state; - get.or_use unbonding[r1] r7 into r8; - add r8.microcredits r4.microcredits into r9; - add block.height 360u32 into r10; - cast r9 r10 into r11 as unbond_state; - set r6 into committee[r0]; - remove bonded[r1]; - set r11 into unbonding[r1]; - -function claim_unbond_public: - async claim_unbond_public self.caller into r0; - output r0 as credits.aleo/claim_unbond_public.future; - -finalize claim_unbond_public: - input r0 as address.public; - get unbonding[r0] into r1; - gte block.height r1.height into r2; - assert.eq r2 true ; - get.or_use account[r0] 0u64 into r3; - add r1.microcredits r3 into r4; - set r4 into account[r0]; - remove unbonding[r0]; - -function set_validator_state: - input r0 as boolean.public; - async set_validator_state self.caller r0 into r1; - output r1 as credits.aleo/set_validator_state.future; - -finalize set_validator_state: - input r0 as address.public; - input r1 as boolean.public; - get committee[r0] into r2; - cast r2.microcredits r1 into r3 as committee_state; - set r3 into committee[r0]; - -function transfer_public: - input r0 as address.public; - input r1 as u64.public; - async transfer_public self.caller r0 r1 into r2; - output r2 as credits.aleo/transfer_public.future; - -finalize transfer_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - get account[r0] into r3; - sub r3 r2 into r4; - set r4 into account[r0]; - get.or_use account[r1] 0u64 into r5; - add r5 r2 into r6; - set r6 into account[r1]; - -function transfer_private: - input r0 as credits.record; - input r1 as address.private; - input r2 as u64.private; - sub r0.microcredits r2 into r3; - cast r1 r2 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function transfer_private_to_public: - input r0 as credits.record; - input r1 as address.public; - input r2 as u64.public; - sub r0.microcredits r2 into r3; - cast r0.owner r3 into r4 as credits.record; - async transfer_private_to_public r1 r2 into r5; - output r4 as credits.record; - output r5 as credits.aleo/transfer_private_to_public.future; - -finalize transfer_private_to_public: - input r0 as address.public; - input r1 as u64.public; - get.or_use account[r0] 0u64 into r2; - add r1 r2 into r3; - set r3 into account[r0]; - -function transfer_public_to_private: - input r0 as address.private; - input r1 as u64.public; - cast r0 r1 into r2 as credits.record; - async transfer_public_to_private self.caller r1 into r3; - output r2 as credits.record; - output r3 as credits.aleo/transfer_public_to_private.future; - -finalize transfer_public_to_private: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; - -function join: - input r0 as credits.record; - input r1 as credits.record; - add r0.microcredits r1.microcredits into r2; - cast r0.owner r2 into r3 as credits.record; - output r3 as credits.record; - -function split: - input r0 as credits.record; - input r1 as u64.private; - sub r0.microcredits r1 into r2; - sub r2 10000u64 into r3; - cast r0.owner r1 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function fee_private: - input r0 as credits.record; - input r1 as u64.public; - input r2 as u64.public; - input r3 as field.public; - assert.neq r1 0u64 ; - assert.neq r3 0field ; - add r1 r2 into r4; - sub r0.microcredits r4 into r5; - cast r0.owner r5 into r6 as credits.record; - output r6 as credits.record; - -function fee_public: - input r0 as u64.public; - input r1 as u64.public; - input r2 as field.public; - assert.neq r0 0u64 ; - assert.neq r2 0field ; - add r0 r1 into r3; - async fee_public self.caller r3 into r4; - output r4 as credits.aleo/fee_public.future; - -finalize fee_public: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; diff --git a/utils/tmp/.aleo/testnet3/distrofund_private_transfer.aleo b/utils/tmp/.aleo/testnet3/distrofund_private_transfer.aleo deleted file mode 100644 index 22e1c99132..0000000000 --- a/utils/tmp/.aleo/testnet3/distrofund_private_transfer.aleo +++ /dev/null @@ -1,633 +0,0 @@ -import credits.aleo; - -program distrofund_private_transfer.aleo; - -struct Addresses1: - address1 as address; - -struct Addresses2: - address1 as address; - address2 as address; - -struct Addresses3: - address1 as address; - address2 as address; - address3 as address; - -struct Addresses4: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - -struct Addresses5: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - -struct Addresses6: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - -struct Addresses7: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - -struct Addresses8: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - -struct Addresses9: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - -struct Addresses10: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - -struct Addresses11: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - -struct Addresses12: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - -struct Addresses13: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - address13 as address; - -struct Addresses14: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - address13 as address; - address14 as address; - -struct Addresses15: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - address13 as address; - address14 as address; - address15 as address; - -struct Amount1: - amount1 as u64; - -struct Amount2: - amount1 as u64; - amount2 as u64; - -struct Amount3: - amount1 as u64; - amount2 as u64; - amount3 as u64; - -struct Amount4: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - -struct Amount5: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - -struct Amount6: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - -struct Amount7: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - -struct Amount8: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - -struct Amount9: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - -struct Amount10: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - -struct Amount11: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - -struct Amount12: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - -struct Amount13: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - amount13 as u64; - -struct Amount14: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - amount13 as u64; - amount14 as u64; - -struct Amount15: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - amount13 as u64; - amount14 as u64; - amount15 as u64; - -function transfer_one: - input r0 as credits.aleo/credits.record; - input r1 as Addresses1.public; - input r2 as Amount1.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - output r4 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - -function transfer_two: - input r0 as credits.aleo/credits.record; - input r1 as Addresses2.public; - input r2 as Amount2.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - output r6 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - -function transfer_three: - input r0 as credits.aleo/credits.record; - input r1 as Addresses3.public; - input r2 as Amount3.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - output r8 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - -function transfer_four: - input r0 as credits.aleo/credits.record; - input r1 as Addresses4.public; - input r2 as Amount4.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - output r10 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - -function transfer_five: - input r0 as credits.aleo/credits.record; - input r1 as Addresses5.public; - input r2 as Amount5.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - output r12 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - -function transfer_six: - input r0 as credits.aleo/credits.record; - input r1 as Addresses6.public; - input r2 as Amount6.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - output r14 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - -function transfer_seven: - input r0 as credits.aleo/credits.record; - input r1 as Addresses7.public; - input r2 as Amount7.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - output r16 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - -function transfer_eight: - input r0 as credits.aleo/credits.record; - input r1 as Addresses8.public; - input r2 as Amount8.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - output r18 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - -function transfer_nine: - input r0 as credits.aleo/credits.record; - input r1 as Addresses9.public; - input r2 as Amount9.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - output r20 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - -function transfer_ten: - input r0 as credits.aleo/credits.record; - input r1 as Addresses10.public; - input r2 as Amount10.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - output r22 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - -function transfer_eleven: - input r0 as credits.aleo/credits.record; - input r1 as Addresses11.public; - input r2 as Amount11.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - output r24 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - -function transfer_twelve: - input r0 as credits.aleo/credits.record; - input r1 as Addresses12.public; - input r2 as Amount12.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - output r26 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - -function transfer_thirteen: - input r0 as credits.aleo/credits.record; - input r1 as Addresses13.public; - input r2 as Amount13.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - call credits.aleo/transfer_private r26 r1.address13 r2.amount13 into r27 r28; - output r28 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - output r27 as credits.aleo/credits.record; - -function transfer_fourteen: - input r0 as credits.aleo/credits.record; - input r1 as Addresses14.public; - input r2 as Amount14.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - call credits.aleo/transfer_private r26 r1.address13 r2.amount13 into r27 r28; - call credits.aleo/transfer_private r28 r1.address14 r2.amount14 into r29 r30; - output r30 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - output r27 as credits.aleo/credits.record; - output r29 as credits.aleo/credits.record; - -function transfer_fifteen: - input r0 as credits.aleo/credits.record; - input r1 as Addresses15.public; - input r2 as Amount15.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - call credits.aleo/transfer_private r26 r1.address13 r2.amount13 into r27 r28; - call credits.aleo/transfer_private r28 r1.address14 r2.amount14 into r29 r30; - call credits.aleo/transfer_private r30 r1.address15 r2.amount15 into r31 r32; - output r32 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - output r27 as credits.aleo/credits.record; - output r29 as credits.aleo/credits.record; - output r31 as credits.aleo/credits.record; diff --git a/utils/tmp/project/build/imports/artgo_aigc_v1_3.aleo b/utils/tmp/project/build/imports/artgo_aigc_v1_3.aleo deleted file mode 100644 index 1e8364326e..0000000000 --- a/utils/tmp/project/build/imports/artgo_aigc_v1_3.aleo +++ /dev/null @@ -1,371 +0,0 @@ -import credits.aleo; - -program artgo_aigc_v1_3.aleo; - -struct Field2: - first as field; - second as field; - -struct NftHash: - minter as address; - prompt as Field2; - nonce as field; - -struct NftInfo: - holder as address; - minter as address; - hash as field; - uri as Field2; - -struct Order: - holder as address; - nft_id as field; - order_type as u8; - amount as u64; - status as u8; - deadline as field; - -struct Bid: - bidder as address; - nft_id as field; - amount as u64; - -record BidRecord: - owner as address.private; - bid_type as u8.private; - bidder as address.private; - nft_id as field.private; - amount as u64.private; - -record Nft: - owner as address.private; - minter as address.private; - prompt as Field2.private; - nonce as field.private; - uri as Field2.private; - -mapping nfts: - key as field.public; - value as NftInfo.public; - -mapping tokenId: - key as boolean.public; - value as field.public; - -mapping admin: - key as boolean.public; - value as address.public; - -mapping fees: - key as boolean.public; - value as u64.public; - -mapping orders: - key as field.public; - value as Order.public; - -mapping bids: - key as field.public; - value as Bid.public; - -function mint_nft: - input r0 as Field2.private; - input r1 as Field2.public; - input r2 as field.public; - cast self.caller r0 r2 into r3 as NftHash; - hash.bhp256 r3 into r4 as field; - cast self.caller self.caller r0 r2 r1 into r5 as Nft.record; - async mint_nft self.caller r4 r1 into r6; - output r5 as Nft.record; - output r6 as artgo_aigc_v1_3.aleo/mint_nft.future; - -finalize mint_nft: - input r0 as address.public; - input r1 as field.public; - input r2 as Field2.public; - get.or_use tokenId[true] 1field into r3; - add r3 1field into r4; - set r4 into tokenId[true]; - cast r0 r0 r1 r2 into r5 as NftInfo; - set r5 into nfts[r3]; - -function transfer_private_nft: - input r0 as field.private; - input r1 as Nft.record; - input r2 as address.private; - is.eq r1.owner self.caller into r3; - assert.eq r3 true ; - cast r1.minter r1.prompt r1.nonce into r4 as NftHash; - hash.bhp256 r4 into r5 as field; - cast r2 r1.minter r1.prompt r1.nonce r1.uri into r6 as Nft.record; - async transfer_private_nft r0 r5 r1.uri r2 into r7; - output r6 as Nft.record; - output r7 as artgo_aigc_v1_3.aleo/transfer_private_nft.future; - -finalize transfer_private_nft: - input r0 as field.public; - input r1 as field.public; - input r2 as Field2.public; - input r3 as address.public; - get nfts[r0] into r4; - assert.eq r4.hash r1 ; - assert.eq r4.uri r2 ; - cast r3 r4.minter r4.hash r4.uri into r5 as NftInfo; - set r5 into nfts[r0]; - -function place_order: - input r0 as field.public; - input r1 as Nft.record; - input r2 as u8.public; - input r3 as u64.public; - input r4 as field.public; - input r5 as address.public; - is.eq r2 1u8 into r6; - assert.eq r6 true ; - gt r3 0u64 into r7; - lte r3 18446744073709551615u64 into r8; - and r7 r8 into r9; - assert.eq r9 true ; - cast r1.minter r1.prompt r1.nonce into r10 as NftHash; - hash.bhp256 r10 into r11 as field; - cast self.caller r0 r2 r3 1u8 0field into r12 as Order; - cast r5 r1.minter r1.prompt r1.nonce r1.uri into r13 as Nft.record; - async place_order r5 r0 r11 r1.uri r12 into r14; - output r13 as Nft.record; - output r14 as artgo_aigc_v1_3.aleo/place_order.future; - -finalize place_order: - input r0 as address.public; - input r1 as field.public; - input r2 as field.public; - input r3 as Field2.public; - input r4 as Order.public; - contains admin[true] into r5; - assert.eq r5 true ; - get admin[true] into r6; - assert.eq r6 r0 ; - get nfts[r1] into r7; - assert.eq r7.hash r2 ; - assert.eq r7.uri r3 ; - contains fees[true] into r8; - assert.eq r8 true ; - get fees[true] into r9; - gte r4.amount r9 into r10; - assert.eq r10 true ; - contains orders[r1] into r11; - not r11 into r12; - assert.eq r12 true ; - set r4 into orders[r1]; - -function update_order: - input r0 as field.public; - input r1 as u64.public; - gt r1 0u64 into r2; - lte r1 18446744073709551615u64 into r3; - and r2 r3 into r4; - assert.eq r4 true ; - async update_order self.caller r0 r1 into r5; - output r5 as artgo_aigc_v1_3.aleo/update_order.future; - -finalize update_order: - input r0 as address.public; - input r1 as field.public; - input r2 as u64.public; - get orders[r1] into r3; - is.eq r3.status 1u8 into r4; - assert.eq r4 true ; - is.eq r0 r3.holder into r5; - assert.eq r5 true ; - contains fees[true] into r6; - assert.eq r6 true ; - get fees[true] into r7; - gte r2 r7 into r8; - assert.eq r8 true ; - cast r3.holder r3.nft_id r3.order_type r2 r3.status r3.deadline into r9 as Order; - set r9 into orders[r1]; - -function cancel_order: - input r0 as u64.public; - input r1 as field.public; - input r2 as address.public; - cast r2 2u8 self.caller r1 0u64 into r3 as BidRecord.record; - call credits.aleo/transfer_public r2 r0 into r4; - async cancel_order r4 self.caller r1 r0 r2 into r5; - output r3 as BidRecord.record; - output r5 as artgo_aigc_v1_3.aleo/cancel_order.future; - -finalize cancel_order: - input r0 as credits.aleo/transfer_public.future; - input r1 as address.public; - input r2 as field.public; - input r3 as u64.public; - input r4 as address.public; - await r0; - contains fees[true] into r5; - assert.eq r5 true ; - get fees[true] into r6; - assert.eq r6 r3 ; - get orders[r2] into r7; - is.eq r7.status 1u8 into r8; - assert.eq r8 true ; - is.eq r1 r7.holder into r9; - assert.eq r9 true ; - contains admin[true] into r10; - assert.eq r10 true ; - get admin[true] into r11; - assert.eq r11 r4 ; - cast r7.holder r7.nft_id r7.order_type r7.amount 2u8 r7.deadline into r12 as Order; - set r12 into orders[r2]; - -function handle_cancel_order: - input r0 as field.public; - input r1 as Nft.record; - input r2 as address.public; - cast r2 r1.minter r1.prompt r1.nonce r1.uri into r3 as Nft.record; - cast r1.minter r1.prompt r1.nonce into r4 as NftHash; - hash.bhp256 r4 into r5 as field; - async handle_cancel_order r0 r5 r1.uri r2 self.caller into r6; - output r3 as Nft.record; - output r6 as artgo_aigc_v1_3.aleo/handle_cancel_order.future; - -finalize handle_cancel_order: - input r0 as field.public; - input r1 as field.public; - input r2 as Field2.public; - input r3 as address.public; - input r4 as address.public; - contains admin[true] into r5; - assert.eq r5 true ; - get admin[true] into r6; - assert.eq r6 r4 ; - get nfts[r0] into r7; - assert.eq r7.hash r1 ; - assert.eq r7.uri r2 ; - get orders[r0] into r8; - is.eq r8.status 2u8 into r9; - assert.eq r9 true ; - is.eq r3 r8.holder into r10; - assert.eq r10 true ; - remove bids[r0]; - remove orders[r0]; - -function bid_order: - input r0 as field.public; - input r1 as u64.public; - input r2 as address.public; - gt r1 0u64 into r3; - lte r1 18446744073709551615u64 into r4; - and r3 r4 into r5; - assert.eq r5 true ; - cast r2 1u8 self.caller r0 r1 into r6 as BidRecord.record; - call credits.aleo/transfer_public r2 r1 into r7; - async bid_order r7 self.caller r0 r1 r2 into r8; - output r6 as BidRecord.record; - output r8 as artgo_aigc_v1_3.aleo/bid_order.future; - -finalize bid_order: - input r0 as credits.aleo/transfer_public.future; - input r1 as address.public; - input r2 as field.public; - input r3 as u64.public; - input r4 as address.public; - await r0; - contains admin[true] into r5; - assert.eq r5 true ; - get admin[true] into r6; - assert.eq r6 r4 ; - cast r1 r2 r3 into r7 as Bid; - set r7 into bids[r2]; - contains orders[r2] into r8; - assert.eq r8 true ; - get orders[r2] into r9; - is.eq r9.status 1u8 into r10; - assert.eq r10 true ; - gte r3 r9.amount into r11; - assert.eq r11 true ; - cast r9.holder r9.nft_id r9.order_type r9.amount 3u8 0field into r12 as Order; - set r12 into orders[r2]; - -function finish_order: - input r0 as field.public; - input r1 as Nft.record; - input r2 as address.public; - input r3 as u64.public; - input r4 as address.public; - input r5 as u64.public; - input r6 as address.public; - gte r5 r3 into r7; - lte r5 18446744073709551615u64 into r8; - and r7 r8 into r9; - assert.eq r9 true ; - assert.eq self.caller r6 ; - sub r5 r3 into r10; - call credits.aleo/transfer_public r2 r10 into r11; - cast r1.minter r1.prompt r1.nonce into r12 as NftHash; - hash.bhp256 r12 into r13 as field; - cast r4 r1.minter r1.prompt r1.nonce r1.uri into r14 as Nft.record; - async finish_order r11 r0 r2 r13 r1.uri r4 r5 r3 r6 into r15; - output r14 as Nft.record; - output r15 as artgo_aigc_v1_3.aleo/finish_order.future; - -finalize finish_order: - input r0 as credits.aleo/transfer_public.future; - input r1 as field.public; - input r2 as address.public; - input r3 as field.public; - input r4 as Field2.public; - input r5 as address.public; - input r6 as u64.public; - input r7 as u64.public; - input r8 as address.public; - await r0; - contains admin[true] into r9; - assert.eq r9 true ; - get admin[true] into r10; - assert.eq r10 r8 ; - contains fees[true] into r11; - assert.eq r11 true ; - get fees[true] into r12; - assert.eq r12 r7 ; - contains orders[r1] into r13; - assert.eq r13 true ; - get orders[r1] into r14; - assert.eq r14.status 3u8 ; - get nfts[r1] into r15; - assert.eq r15.hash r3 ; - assert.eq r15.uri r4 ; - assert.eq r15.holder r2 ; - contains bids[r1] into r16; - assert.eq r16 true ; - get bids[r1] into r17; - assert.eq r17.bidder r5 ; - is.eq r17.amount r6 into r18; - assert.eq r18 true ; - cast r5 r15.minter r15.hash r15.uri into r19 as NftInfo; - set r19 into nfts[r1]; - remove bids[r1]; - remove orders[r1]; - -function set_admin: - input r0 as address.private; - async set_admin self.caller r0 into r1; - output r1 as artgo_aigc_v1_3.aleo/set_admin.future; - -finalize set_admin: - input r0 as address.public; - input r1 as address.public; - get.or_use admin[true] aleo12n3kz2wzrljvhp9zkn9zety54wz8mlmlakzzkrs6znaz028wjczqpe8x3j into r2; - assert.eq r2 r0 ; - set r1 into admin[true]; - -function set_fee: - input r0 as u64.private; - async set_fee self.caller r0 into r1; - output r1 as artgo_aigc_v1_3.aleo/set_fee.future; - -finalize set_fee: - input r0 as address.public; - input r1 as u64.public; - get admin[true] into r2; - assert.eq r0 r2 ; - set r1 into fees[true]; diff --git a/utils/tmp/project/build/imports/credits.aleo b/utils/tmp/project/build/imports/credits.aleo deleted file mode 100644 index bdb2115699..0000000000 --- a/utils/tmp/project/build/imports/credits.aleo +++ /dev/null @@ -1,312 +0,0 @@ -program credits.aleo; - -mapping committee: - key as address.public; - value as committee_state.public; - -struct committee_state: - microcredits as u64; - is_open as boolean; - -mapping bonded: - key as address.public; - value as bond_state.public; - -struct bond_state: - validator as address; - microcredits as u64; - -mapping unbonding: - key as address.public; - value as unbond_state.public; - -struct unbond_state: - microcredits as u64; - height as u32; - -mapping account: - key as address.public; - value as u64.public; - -record credits: - owner as address.private; - microcredits as u64.private; - -function bond_public: - input r0 as address.public; - input r1 as u64.public; - gte r1 1000000u64 into r2; - assert.eq r2 true ; - async bond_public self.caller r0 r1 into r3; - output r3 as credits.aleo/bond_public.future; - -finalize bond_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - is.eq r0 r1 into r3; - branch.eq r3 true to bond_validator; - branch.eq r3 false to bond_delegator; - position bond_validator; - cast 0u64 true into r4 as committee_state; - get.or_use committee[r0] r4 into r5; - assert.eq r5.is_open true ; - add r5.microcredits r2 into r6; - cast r6 r5.is_open into r7 as committee_state; - cast r1 0u64 into r8 as bond_state; - get.or_use bonded[r0] r8 into r9; - assert.eq r9.validator r1 ; - add r9.microcredits r2 into r10; - gte r10 1000000000000u64 into r11; - assert.eq r11 true ; - cast r1 r10 into r12 as bond_state; - get account[r0] into r13; - sub r13 r2 into r14; - set r7 into committee[r0]; - set r12 into bonded[r0]; - set r14 into account[r0]; - branch.eq true true to end; - position bond_delegator; - contains committee[r0] into r15; - assert.eq r15 false ; - get committee[r1] into r16; - assert.eq r16.is_open true ; - add r16.microcredits r2 into r17; - cast r17 r16.is_open into r18 as committee_state; - cast r1 0u64 into r19 as bond_state; - get.or_use bonded[r0] r19 into r20; - assert.eq r20.validator r1 ; - add r20.microcredits r2 into r21; - gte r21 10000000u64 into r22; - assert.eq r22 true ; - cast r1 r21 into r23 as bond_state; - get account[r0] into r24; - sub r24 r2 into r25; - set r18 into committee[r1]; - set r23 into bonded[r0]; - set r25 into account[r0]; - position end; - -function unbond_public: - input r0 as u64.public; - async unbond_public self.caller r0 into r1; - output r1 as credits.aleo/unbond_public.future; - -finalize unbond_public: - input r0 as address.public; - input r1 as u64.public; - cast 0u64 0u32 into r2 as unbond_state; - get.or_use unbonding[r0] r2 into r3; - add block.height 360u32 into r4; - contains committee[r0] into r5; - branch.eq r5 true to unbond_validator; - branch.eq r5 false to unbond_delegator; - position unbond_validator; - get committee[r0] into r6; - sub r6.microcredits r1 into r7; - get bonded[r0] into r8; - assert.eq r8.validator r0 ; - sub r8.microcredits r1 into r9; - gte r9 1000000000000u64 into r10; - branch.eq r10 true to decrement_validator; - branch.eq r10 false to remove_validator; - position decrement_validator; - cast r7 r6.is_open into r11 as committee_state; - set r11 into committee[r0]; - cast r0 r9 into r12 as bond_state; - set r12 into bonded[r0]; - add r3.microcredits r1 into r13; - cast r13 r4 into r14 as unbond_state; - set r14 into unbonding[r0]; - branch.eq true true to end; - position remove_validator; - assert.eq r6.microcredits r8.microcredits ; - remove committee[r0]; - remove bonded[r0]; - add r3.microcredits r8.microcredits into r15; - cast r15 r4 into r16 as unbond_state; - set r16 into unbonding[r0]; - branch.eq true true to end; - position unbond_delegator; - get bonded[r0] into r17; - sub r17.microcredits r1 into r18; - gte r18 10000000u64 into r19; - branch.eq r19 true to decrement_delegator; - branch.eq r19 false to remove_delegator; - position decrement_delegator; - get committee[r17.validator] into r20; - sub r20.microcredits r1 into r21; - cast r21 r20.is_open into r22 as committee_state; - set r22 into committee[r17.validator]; - cast r17.validator r18 into r23 as bond_state; - set r23 into bonded[r0]; - add r3.microcredits r1 into r24; - cast r24 r4 into r25 as unbond_state; - set r25 into unbonding[r0]; - branch.eq true true to end; - position remove_delegator; - get committee[r17.validator] into r26; - sub r26.microcredits r17.microcredits into r27; - cast r27 r26.is_open into r28 as committee_state; - set r28 into committee[r17.validator]; - remove bonded[r0]; - add r3.microcredits r17.microcredits into r29; - cast r29 r4 into r30 as unbond_state; - set r30 into unbonding[r0]; - position end; - -function unbond_delegator_as_validator: - input r0 as address.public; - async unbond_delegator_as_validator self.caller r0 into r1; - output r1 as credits.aleo/unbond_delegator_as_validator.future; - -finalize unbond_delegator_as_validator: - input r0 as address.public; - input r1 as address.public; - get committee[r0] into r2; - assert.eq r2.is_open false ; - contains committee[r1] into r3; - assert.eq r3 false ; - get bonded[r1] into r4; - assert.eq r4.validator r0 ; - sub r2.microcredits r4.microcredits into r5; - cast r5 r2.is_open into r6 as committee_state; - cast 0u64 0u32 into r7 as unbond_state; - get.or_use unbonding[r1] r7 into r8; - add r8.microcredits r4.microcredits into r9; - add block.height 360u32 into r10; - cast r9 r10 into r11 as unbond_state; - set r6 into committee[r0]; - remove bonded[r1]; - set r11 into unbonding[r1]; - -function claim_unbond_public: - async claim_unbond_public self.caller into r0; - output r0 as credits.aleo/claim_unbond_public.future; - -finalize claim_unbond_public: - input r0 as address.public; - get unbonding[r0] into r1; - gte block.height r1.height into r2; - assert.eq r2 true ; - get.or_use account[r0] 0u64 into r3; - add r1.microcredits r3 into r4; - set r4 into account[r0]; - remove unbonding[r0]; - -function set_validator_state: - input r0 as boolean.public; - async set_validator_state self.caller r0 into r1; - output r1 as credits.aleo/set_validator_state.future; - -finalize set_validator_state: - input r0 as address.public; - input r1 as boolean.public; - get committee[r0] into r2; - cast r2.microcredits r1 into r3 as committee_state; - set r3 into committee[r0]; - -function transfer_public: - input r0 as address.public; - input r1 as u64.public; - async transfer_public self.caller r0 r1 into r2; - output r2 as credits.aleo/transfer_public.future; - -finalize transfer_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - get account[r0] into r3; - sub r3 r2 into r4; - set r4 into account[r0]; - get.or_use account[r1] 0u64 into r5; - add r5 r2 into r6; - set r6 into account[r1]; - -function transfer_private: - input r0 as credits.record; - input r1 as address.private; - input r2 as u64.private; - sub r0.microcredits r2 into r3; - cast r1 r2 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function transfer_private_to_public: - input r0 as credits.record; - input r1 as address.public; - input r2 as u64.public; - sub r0.microcredits r2 into r3; - cast r0.owner r3 into r4 as credits.record; - async transfer_private_to_public r1 r2 into r5; - output r4 as credits.record; - output r5 as credits.aleo/transfer_private_to_public.future; - -finalize transfer_private_to_public: - input r0 as address.public; - input r1 as u64.public; - get.or_use account[r0] 0u64 into r2; - add r1 r2 into r3; - set r3 into account[r0]; - -function transfer_public_to_private: - input r0 as address.private; - input r1 as u64.public; - cast r0 r1 into r2 as credits.record; - async transfer_public_to_private self.caller r1 into r3; - output r2 as credits.record; - output r3 as credits.aleo/transfer_public_to_private.future; - -finalize transfer_public_to_private: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; - -function join: - input r0 as credits.record; - input r1 as credits.record; - add r0.microcredits r1.microcredits into r2; - cast r0.owner r2 into r3 as credits.record; - output r3 as credits.record; - -function split: - input r0 as credits.record; - input r1 as u64.private; - sub r0.microcredits r1 into r2; - sub r2 10000u64 into r3; - cast r0.owner r1 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function fee_private: - input r0 as credits.record; - input r1 as u64.public; - input r2 as u64.public; - input r3 as field.public; - assert.neq r1 0u64 ; - assert.neq r3 0field ; - add r1 r2 into r4; - sub r0.microcredits r4 into r5; - cast r0.owner r5 into r6 as credits.record; - output r6 as credits.record; - -function fee_public: - input r0 as u64.public; - input r1 as u64.public; - input r2 as field.public; - assert.neq r0 0u64 ; - assert.neq r2 0field ; - add r0 r1 into r3; - async fee_public self.caller r3 into r4; - output r4 as credits.aleo/fee_public.future; - -finalize fee_public: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; diff --git a/utils/tmp/project/leo.lock b/utils/tmp/project/leo.lock deleted file mode 100644 index fa3e934700..0000000000 --- a/utils/tmp/project/leo.lock +++ /dev/null @@ -1,20 +0,0 @@ -[[package]] -name = "distrofund_private_transfer.aleo" -network = "testnet3" -location = "network" -checksum = "5885825ba7350bb57c70baa44730545eb57757fade520217516ace98c9a6c6e4" -dependencies = ["credits.aleo"] - -[[package]] -name = "credits.aleo" -network = "testnet3" -location = "network" -checksum = "2ac86d83bca4fbf2c021660875ea1e5b4e65c7a192d9bc020ab02a0f32c86f0d" -dependencies = [] - -[[package]] -name = "artgo_aigc_v1_3.aleo" -network = "testnet3" -location = "network" -checksum = "ea21b4f760709e7ab91e824f6e277631cfb2fe8717c996269fd9fbe490ea1501" -dependencies = ["credits.aleo"] diff --git a/utils/tmp/project/program.json b/utils/tmp/project/program.json deleted file mode 100644 index 159448be15..0000000000 --- a/utils/tmp/project/program.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "program": "transfer.aleo", - "version": "0.0.0", - "description": "", - "license": "MIT", - "dependencies": [ - { - "name": "artgo_aigc_v1_3.aleo", - "location": "network", - "network": "testnet3" - } - ] -} diff --git a/utils/tmp/project/src/main.leo b/utils/tmp/project/src/main.leo deleted file mode 100644 index 99fed7a263..0000000000 --- a/utils/tmp/project/src/main.leo +++ /dev/null @@ -1,14 +0,0 @@ -import artgo_aigc_v1_3.aleo; -import credits.aleo; - -program transfer.aleo { - - mapping balances: u64 => u64; - - transition main(arg1: field, arg2: u64, arg3: address) -> artgo_aigc_v1_3.aleo/BidRecord { - return artgo_aigc_v1_3.aleo/bid_order(arg1, arg2, arg3) then finalize(); - } - finalize main() { - Mapping::set(balances, 1u64, 1u64); - } -} \ No newline at end of file diff --git a/utils/tmp/simple/build/imports/credits.aleo b/utils/tmp/simple/build/imports/credits.aleo deleted file mode 100644 index bdb2115699..0000000000 --- a/utils/tmp/simple/build/imports/credits.aleo +++ /dev/null @@ -1,312 +0,0 @@ -program credits.aleo; - -mapping committee: - key as address.public; - value as committee_state.public; - -struct committee_state: - microcredits as u64; - is_open as boolean; - -mapping bonded: - key as address.public; - value as bond_state.public; - -struct bond_state: - validator as address; - microcredits as u64; - -mapping unbonding: - key as address.public; - value as unbond_state.public; - -struct unbond_state: - microcredits as u64; - height as u32; - -mapping account: - key as address.public; - value as u64.public; - -record credits: - owner as address.private; - microcredits as u64.private; - -function bond_public: - input r0 as address.public; - input r1 as u64.public; - gte r1 1000000u64 into r2; - assert.eq r2 true ; - async bond_public self.caller r0 r1 into r3; - output r3 as credits.aleo/bond_public.future; - -finalize bond_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - is.eq r0 r1 into r3; - branch.eq r3 true to bond_validator; - branch.eq r3 false to bond_delegator; - position bond_validator; - cast 0u64 true into r4 as committee_state; - get.or_use committee[r0] r4 into r5; - assert.eq r5.is_open true ; - add r5.microcredits r2 into r6; - cast r6 r5.is_open into r7 as committee_state; - cast r1 0u64 into r8 as bond_state; - get.or_use bonded[r0] r8 into r9; - assert.eq r9.validator r1 ; - add r9.microcredits r2 into r10; - gte r10 1000000000000u64 into r11; - assert.eq r11 true ; - cast r1 r10 into r12 as bond_state; - get account[r0] into r13; - sub r13 r2 into r14; - set r7 into committee[r0]; - set r12 into bonded[r0]; - set r14 into account[r0]; - branch.eq true true to end; - position bond_delegator; - contains committee[r0] into r15; - assert.eq r15 false ; - get committee[r1] into r16; - assert.eq r16.is_open true ; - add r16.microcredits r2 into r17; - cast r17 r16.is_open into r18 as committee_state; - cast r1 0u64 into r19 as bond_state; - get.or_use bonded[r0] r19 into r20; - assert.eq r20.validator r1 ; - add r20.microcredits r2 into r21; - gte r21 10000000u64 into r22; - assert.eq r22 true ; - cast r1 r21 into r23 as bond_state; - get account[r0] into r24; - sub r24 r2 into r25; - set r18 into committee[r1]; - set r23 into bonded[r0]; - set r25 into account[r0]; - position end; - -function unbond_public: - input r0 as u64.public; - async unbond_public self.caller r0 into r1; - output r1 as credits.aleo/unbond_public.future; - -finalize unbond_public: - input r0 as address.public; - input r1 as u64.public; - cast 0u64 0u32 into r2 as unbond_state; - get.or_use unbonding[r0] r2 into r3; - add block.height 360u32 into r4; - contains committee[r0] into r5; - branch.eq r5 true to unbond_validator; - branch.eq r5 false to unbond_delegator; - position unbond_validator; - get committee[r0] into r6; - sub r6.microcredits r1 into r7; - get bonded[r0] into r8; - assert.eq r8.validator r0 ; - sub r8.microcredits r1 into r9; - gte r9 1000000000000u64 into r10; - branch.eq r10 true to decrement_validator; - branch.eq r10 false to remove_validator; - position decrement_validator; - cast r7 r6.is_open into r11 as committee_state; - set r11 into committee[r0]; - cast r0 r9 into r12 as bond_state; - set r12 into bonded[r0]; - add r3.microcredits r1 into r13; - cast r13 r4 into r14 as unbond_state; - set r14 into unbonding[r0]; - branch.eq true true to end; - position remove_validator; - assert.eq r6.microcredits r8.microcredits ; - remove committee[r0]; - remove bonded[r0]; - add r3.microcredits r8.microcredits into r15; - cast r15 r4 into r16 as unbond_state; - set r16 into unbonding[r0]; - branch.eq true true to end; - position unbond_delegator; - get bonded[r0] into r17; - sub r17.microcredits r1 into r18; - gte r18 10000000u64 into r19; - branch.eq r19 true to decrement_delegator; - branch.eq r19 false to remove_delegator; - position decrement_delegator; - get committee[r17.validator] into r20; - sub r20.microcredits r1 into r21; - cast r21 r20.is_open into r22 as committee_state; - set r22 into committee[r17.validator]; - cast r17.validator r18 into r23 as bond_state; - set r23 into bonded[r0]; - add r3.microcredits r1 into r24; - cast r24 r4 into r25 as unbond_state; - set r25 into unbonding[r0]; - branch.eq true true to end; - position remove_delegator; - get committee[r17.validator] into r26; - sub r26.microcredits r17.microcredits into r27; - cast r27 r26.is_open into r28 as committee_state; - set r28 into committee[r17.validator]; - remove bonded[r0]; - add r3.microcredits r17.microcredits into r29; - cast r29 r4 into r30 as unbond_state; - set r30 into unbonding[r0]; - position end; - -function unbond_delegator_as_validator: - input r0 as address.public; - async unbond_delegator_as_validator self.caller r0 into r1; - output r1 as credits.aleo/unbond_delegator_as_validator.future; - -finalize unbond_delegator_as_validator: - input r0 as address.public; - input r1 as address.public; - get committee[r0] into r2; - assert.eq r2.is_open false ; - contains committee[r1] into r3; - assert.eq r3 false ; - get bonded[r1] into r4; - assert.eq r4.validator r0 ; - sub r2.microcredits r4.microcredits into r5; - cast r5 r2.is_open into r6 as committee_state; - cast 0u64 0u32 into r7 as unbond_state; - get.or_use unbonding[r1] r7 into r8; - add r8.microcredits r4.microcredits into r9; - add block.height 360u32 into r10; - cast r9 r10 into r11 as unbond_state; - set r6 into committee[r0]; - remove bonded[r1]; - set r11 into unbonding[r1]; - -function claim_unbond_public: - async claim_unbond_public self.caller into r0; - output r0 as credits.aleo/claim_unbond_public.future; - -finalize claim_unbond_public: - input r0 as address.public; - get unbonding[r0] into r1; - gte block.height r1.height into r2; - assert.eq r2 true ; - get.or_use account[r0] 0u64 into r3; - add r1.microcredits r3 into r4; - set r4 into account[r0]; - remove unbonding[r0]; - -function set_validator_state: - input r0 as boolean.public; - async set_validator_state self.caller r0 into r1; - output r1 as credits.aleo/set_validator_state.future; - -finalize set_validator_state: - input r0 as address.public; - input r1 as boolean.public; - get committee[r0] into r2; - cast r2.microcredits r1 into r3 as committee_state; - set r3 into committee[r0]; - -function transfer_public: - input r0 as address.public; - input r1 as u64.public; - async transfer_public self.caller r0 r1 into r2; - output r2 as credits.aleo/transfer_public.future; - -finalize transfer_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - get account[r0] into r3; - sub r3 r2 into r4; - set r4 into account[r0]; - get.or_use account[r1] 0u64 into r5; - add r5 r2 into r6; - set r6 into account[r1]; - -function transfer_private: - input r0 as credits.record; - input r1 as address.private; - input r2 as u64.private; - sub r0.microcredits r2 into r3; - cast r1 r2 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function transfer_private_to_public: - input r0 as credits.record; - input r1 as address.public; - input r2 as u64.public; - sub r0.microcredits r2 into r3; - cast r0.owner r3 into r4 as credits.record; - async transfer_private_to_public r1 r2 into r5; - output r4 as credits.record; - output r5 as credits.aleo/transfer_private_to_public.future; - -finalize transfer_private_to_public: - input r0 as address.public; - input r1 as u64.public; - get.or_use account[r0] 0u64 into r2; - add r1 r2 into r3; - set r3 into account[r0]; - -function transfer_public_to_private: - input r0 as address.private; - input r1 as u64.public; - cast r0 r1 into r2 as credits.record; - async transfer_public_to_private self.caller r1 into r3; - output r2 as credits.record; - output r3 as credits.aleo/transfer_public_to_private.future; - -finalize transfer_public_to_private: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; - -function join: - input r0 as credits.record; - input r1 as credits.record; - add r0.microcredits r1.microcredits into r2; - cast r0.owner r2 into r3 as credits.record; - output r3 as credits.record; - -function split: - input r0 as credits.record; - input r1 as u64.private; - sub r0.microcredits r1 into r2; - sub r2 10000u64 into r3; - cast r0.owner r1 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function fee_private: - input r0 as credits.record; - input r1 as u64.public; - input r2 as u64.public; - input r3 as field.public; - assert.neq r1 0u64 ; - assert.neq r3 0field ; - add r1 r2 into r4; - sub r0.microcredits r4 into r5; - cast r0.owner r5 into r6 as credits.record; - output r6 as credits.record; - -function fee_public: - input r0 as u64.public; - input r1 as u64.public; - input r2 as field.public; - assert.neq r0 0u64 ; - assert.neq r2 0field ; - add r0 r1 into r3; - async fee_public self.caller r3 into r4; - output r4 as credits.aleo/fee_public.future; - -finalize fee_public: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; diff --git a/utils/tmp/simple/build/imports/distrofund_private_transfer.aleo b/utils/tmp/simple/build/imports/distrofund_private_transfer.aleo deleted file mode 100644 index 22e1c99132..0000000000 --- a/utils/tmp/simple/build/imports/distrofund_private_transfer.aleo +++ /dev/null @@ -1,633 +0,0 @@ -import credits.aleo; - -program distrofund_private_transfer.aleo; - -struct Addresses1: - address1 as address; - -struct Addresses2: - address1 as address; - address2 as address; - -struct Addresses3: - address1 as address; - address2 as address; - address3 as address; - -struct Addresses4: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - -struct Addresses5: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - -struct Addresses6: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - -struct Addresses7: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - -struct Addresses8: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - -struct Addresses9: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - -struct Addresses10: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - -struct Addresses11: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - -struct Addresses12: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - -struct Addresses13: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - address13 as address; - -struct Addresses14: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - address13 as address; - address14 as address; - -struct Addresses15: - address1 as address; - address2 as address; - address3 as address; - address4 as address; - address5 as address; - address6 as address; - address7 as address; - address8 as address; - address9 as address; - address10 as address; - address11 as address; - address12 as address; - address13 as address; - address14 as address; - address15 as address; - -struct Amount1: - amount1 as u64; - -struct Amount2: - amount1 as u64; - amount2 as u64; - -struct Amount3: - amount1 as u64; - amount2 as u64; - amount3 as u64; - -struct Amount4: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - -struct Amount5: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - -struct Amount6: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - -struct Amount7: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - -struct Amount8: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - -struct Amount9: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - -struct Amount10: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - -struct Amount11: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - -struct Amount12: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - -struct Amount13: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - amount13 as u64; - -struct Amount14: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - amount13 as u64; - amount14 as u64; - -struct Amount15: - amount1 as u64; - amount2 as u64; - amount3 as u64; - amount4 as u64; - amount5 as u64; - amount6 as u64; - amount7 as u64; - amount8 as u64; - amount9 as u64; - amount10 as u64; - amount11 as u64; - amount12 as u64; - amount13 as u64; - amount14 as u64; - amount15 as u64; - -function transfer_one: - input r0 as credits.aleo/credits.record; - input r1 as Addresses1.public; - input r2 as Amount1.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - output r4 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - -function transfer_two: - input r0 as credits.aleo/credits.record; - input r1 as Addresses2.public; - input r2 as Amount2.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - output r6 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - -function transfer_three: - input r0 as credits.aleo/credits.record; - input r1 as Addresses3.public; - input r2 as Amount3.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - output r8 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - -function transfer_four: - input r0 as credits.aleo/credits.record; - input r1 as Addresses4.public; - input r2 as Amount4.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - output r10 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - -function transfer_five: - input r0 as credits.aleo/credits.record; - input r1 as Addresses5.public; - input r2 as Amount5.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - output r12 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - -function transfer_six: - input r0 as credits.aleo/credits.record; - input r1 as Addresses6.public; - input r2 as Amount6.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - output r14 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - -function transfer_seven: - input r0 as credits.aleo/credits.record; - input r1 as Addresses7.public; - input r2 as Amount7.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - output r16 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - -function transfer_eight: - input r0 as credits.aleo/credits.record; - input r1 as Addresses8.public; - input r2 as Amount8.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - output r18 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - -function transfer_nine: - input r0 as credits.aleo/credits.record; - input r1 as Addresses9.public; - input r2 as Amount9.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - output r20 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - -function transfer_ten: - input r0 as credits.aleo/credits.record; - input r1 as Addresses10.public; - input r2 as Amount10.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - output r22 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - -function transfer_eleven: - input r0 as credits.aleo/credits.record; - input r1 as Addresses11.public; - input r2 as Amount11.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - output r24 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - -function transfer_twelve: - input r0 as credits.aleo/credits.record; - input r1 as Addresses12.public; - input r2 as Amount12.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - output r26 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - -function transfer_thirteen: - input r0 as credits.aleo/credits.record; - input r1 as Addresses13.public; - input r2 as Amount13.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - call credits.aleo/transfer_private r26 r1.address13 r2.amount13 into r27 r28; - output r28 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - output r27 as credits.aleo/credits.record; - -function transfer_fourteen: - input r0 as credits.aleo/credits.record; - input r1 as Addresses14.public; - input r2 as Amount14.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - call credits.aleo/transfer_private r26 r1.address13 r2.amount13 into r27 r28; - call credits.aleo/transfer_private r28 r1.address14 r2.amount14 into r29 r30; - output r30 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - output r27 as credits.aleo/credits.record; - output r29 as credits.aleo/credits.record; - -function transfer_fifteen: - input r0 as credits.aleo/credits.record; - input r1 as Addresses15.public; - input r2 as Amount15.private; - call credits.aleo/transfer_private r0 r1.address1 r2.amount1 into r3 r4; - call credits.aleo/transfer_private r4 r1.address2 r2.amount2 into r5 r6; - call credits.aleo/transfer_private r6 r1.address3 r2.amount3 into r7 r8; - call credits.aleo/transfer_private r8 r1.address4 r2.amount4 into r9 r10; - call credits.aleo/transfer_private r10 r1.address5 r2.amount5 into r11 r12; - call credits.aleo/transfer_private r12 r1.address6 r2.amount6 into r13 r14; - call credits.aleo/transfer_private r14 r1.address7 r2.amount7 into r15 r16; - call credits.aleo/transfer_private r16 r1.address8 r2.amount8 into r17 r18; - call credits.aleo/transfer_private r18 r1.address9 r2.amount9 into r19 r20; - call credits.aleo/transfer_private r20 r1.address10 r2.amount10 into r21 r22; - call credits.aleo/transfer_private r22 r1.address11 r2.amount11 into r23 r24; - call credits.aleo/transfer_private r24 r1.address12 r2.amount12 into r25 r26; - call credits.aleo/transfer_private r26 r1.address13 r2.amount13 into r27 r28; - call credits.aleo/transfer_private r28 r1.address14 r2.amount14 into r29 r30; - call credits.aleo/transfer_private r30 r1.address15 r2.amount15 into r31 r32; - output r32 as credits.aleo/credits.record; - output r3 as credits.aleo/credits.record; - output r5 as credits.aleo/credits.record; - output r7 as credits.aleo/credits.record; - output r9 as credits.aleo/credits.record; - output r11 as credits.aleo/credits.record; - output r13 as credits.aleo/credits.record; - output r15 as credits.aleo/credits.record; - output r17 as credits.aleo/credits.record; - output r19 as credits.aleo/credits.record; - output r21 as credits.aleo/credits.record; - output r23 as credits.aleo/credits.record; - output r25 as credits.aleo/credits.record; - output r27 as credits.aleo/credits.record; - output r29 as credits.aleo/credits.record; - output r31 as credits.aleo/credits.record; diff --git a/utils/tmp/simple/build/main.aleo b/utils/tmp/simple/build/main.aleo deleted file mode 100644 index 7b91000e9b..0000000000 --- a/utils/tmp/simple/build/main.aleo +++ /dev/null @@ -1,45 +0,0 @@ -import credits.aleo; -import distrofund_private_transfer.aleo;program simple.aleo; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -function main: - input r0 as credits.aleo/credits.record; - input r1 as distrofund_private_transfer.aleo/Addresses1.struct; - input r2 as distrofund_private_transfer.aleo/Amount1.struct; - call distrofund_private_transfer.aleo/transfer_one r0 r1 r2 into r3 r4; - output r3 as credits.aleo/credits.record; - output r4 as credits.aleo/credits.record; diff --git a/utils/tmp/simple/build/program.json b/utils/tmp/simple/build/program.json deleted file mode 100644 index 1a2cc617d9..0000000000 --- a/utils/tmp/simple/build/program.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "program": "simple.aleo", - "version": "0.0.0", - "description": "", - "license": "MIT", - "dependencies": [ - { - "name": "distrofund_private_transfer.aleo", - "location": "network", - "network": "testnet3" - } - ] -} \ No newline at end of file diff --git a/utils/tmp/simple/leo.lock b/utils/tmp/simple/leo.lock deleted file mode 100644 index 9668c1fcbf..0000000000 --- a/utils/tmp/simple/leo.lock +++ /dev/null @@ -1,13 +0,0 @@ -[[package]] -name = "distrofund_private_transfer.aleo" -network = "testnet3" -location = "network" -checksum = "5885825ba7350bb57c70baa44730545eb57757fade520217516ace98c9a6c6e4" -dependencies = ["credits.aleo"] - -[[package]] -name = "credits.aleo" -network = "testnet3" -location = "network" -checksum = "2ac86d83bca4fbf2c021660875ea1e5b4e65c7a192d9bc020ab02a0f32c86f0d" -dependencies = [] diff --git a/utils/tmp/simple/program.json b/utils/tmp/simple/program.json deleted file mode 100644 index 1a2cc617d9..0000000000 --- a/utils/tmp/simple/program.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "program": "simple.aleo", - "version": "0.0.0", - "description": "", - "license": "MIT", - "dependencies": [ - { - "name": "distrofund_private_transfer.aleo", - "location": "network", - "network": "testnet3" - } - ] -} \ No newline at end of file diff --git a/utils/tmp/simple/src/main.leo b/utils/tmp/simple/src/main.leo deleted file mode 100644 index 61f6b2dc05..0000000000 --- a/utils/tmp/simple/src/main.leo +++ /dev/null @@ -1,8 +0,0 @@ -import distrofund_private_transfer.aleo; -import credits.aleo; - -program simple.aleo { - transition main(arg1: credits.aleo/credits, arg2:distrofund_private_transfer.aleo/Addresses1, arg3:distrofund_private_transfer.aleo/Amount1) -> (credits.aleo/credits.record, credits.aleo/credits.record) { - return distrofund_private_transfer.aleo/transfer_one(arg1, arg2, arg3); - } -} \ No newline at end of file diff --git a/utils/tmp/super_simple/build/build/credits-aleo/transfer_private.prover b/utils/tmp/super_simple/build/build/credits-aleo/transfer_private.prover deleted file mode 100644 index 05441dfe56..0000000000 Binary files a/utils/tmp/super_simple/build/build/credits-aleo/transfer_private.prover and /dev/null differ diff --git a/utils/tmp/super_simple/build/build/credits-aleo/transfer_private.verifier b/utils/tmp/super_simple/build/build/credits-aleo/transfer_private.verifier deleted file mode 100644 index c2102d4423..0000000000 Binary files a/utils/tmp/super_simple/build/build/credits-aleo/transfer_private.verifier and /dev/null differ diff --git a/utils/tmp/super_simple/build/build/main.avm b/utils/tmp/super_simple/build/build/main.avm deleted file mode 100644 index b513e0481d..0000000000 Binary files a/utils/tmp/super_simple/build/build/main.avm and /dev/null differ diff --git a/utils/tmp/super_simple/build/build/main.prover b/utils/tmp/super_simple/build/build/main.prover deleted file mode 100644 index f53eb7ce28..0000000000 Binary files a/utils/tmp/super_simple/build/build/main.prover and /dev/null differ diff --git a/utils/tmp/super_simple/build/build/main.verifier b/utils/tmp/super_simple/build/build/main.verifier deleted file mode 100644 index 555814d1a9..0000000000 Binary files a/utils/tmp/super_simple/build/build/main.verifier and /dev/null differ diff --git a/utils/tmp/super_simple/build/imports/credits.aleo b/utils/tmp/super_simple/build/imports/credits.aleo deleted file mode 100644 index bdb2115699..0000000000 --- a/utils/tmp/super_simple/build/imports/credits.aleo +++ /dev/null @@ -1,312 +0,0 @@ -program credits.aleo; - -mapping committee: - key as address.public; - value as committee_state.public; - -struct committee_state: - microcredits as u64; - is_open as boolean; - -mapping bonded: - key as address.public; - value as bond_state.public; - -struct bond_state: - validator as address; - microcredits as u64; - -mapping unbonding: - key as address.public; - value as unbond_state.public; - -struct unbond_state: - microcredits as u64; - height as u32; - -mapping account: - key as address.public; - value as u64.public; - -record credits: - owner as address.private; - microcredits as u64.private; - -function bond_public: - input r0 as address.public; - input r1 as u64.public; - gte r1 1000000u64 into r2; - assert.eq r2 true ; - async bond_public self.caller r0 r1 into r3; - output r3 as credits.aleo/bond_public.future; - -finalize bond_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - is.eq r0 r1 into r3; - branch.eq r3 true to bond_validator; - branch.eq r3 false to bond_delegator; - position bond_validator; - cast 0u64 true into r4 as committee_state; - get.or_use committee[r0] r4 into r5; - assert.eq r5.is_open true ; - add r5.microcredits r2 into r6; - cast r6 r5.is_open into r7 as committee_state; - cast r1 0u64 into r8 as bond_state; - get.or_use bonded[r0] r8 into r9; - assert.eq r9.validator r1 ; - add r9.microcredits r2 into r10; - gte r10 1000000000000u64 into r11; - assert.eq r11 true ; - cast r1 r10 into r12 as bond_state; - get account[r0] into r13; - sub r13 r2 into r14; - set r7 into committee[r0]; - set r12 into bonded[r0]; - set r14 into account[r0]; - branch.eq true true to end; - position bond_delegator; - contains committee[r0] into r15; - assert.eq r15 false ; - get committee[r1] into r16; - assert.eq r16.is_open true ; - add r16.microcredits r2 into r17; - cast r17 r16.is_open into r18 as committee_state; - cast r1 0u64 into r19 as bond_state; - get.or_use bonded[r0] r19 into r20; - assert.eq r20.validator r1 ; - add r20.microcredits r2 into r21; - gte r21 10000000u64 into r22; - assert.eq r22 true ; - cast r1 r21 into r23 as bond_state; - get account[r0] into r24; - sub r24 r2 into r25; - set r18 into committee[r1]; - set r23 into bonded[r0]; - set r25 into account[r0]; - position end; - -function unbond_public: - input r0 as u64.public; - async unbond_public self.caller r0 into r1; - output r1 as credits.aleo/unbond_public.future; - -finalize unbond_public: - input r0 as address.public; - input r1 as u64.public; - cast 0u64 0u32 into r2 as unbond_state; - get.or_use unbonding[r0] r2 into r3; - add block.height 360u32 into r4; - contains committee[r0] into r5; - branch.eq r5 true to unbond_validator; - branch.eq r5 false to unbond_delegator; - position unbond_validator; - get committee[r0] into r6; - sub r6.microcredits r1 into r7; - get bonded[r0] into r8; - assert.eq r8.validator r0 ; - sub r8.microcredits r1 into r9; - gte r9 1000000000000u64 into r10; - branch.eq r10 true to decrement_validator; - branch.eq r10 false to remove_validator; - position decrement_validator; - cast r7 r6.is_open into r11 as committee_state; - set r11 into committee[r0]; - cast r0 r9 into r12 as bond_state; - set r12 into bonded[r0]; - add r3.microcredits r1 into r13; - cast r13 r4 into r14 as unbond_state; - set r14 into unbonding[r0]; - branch.eq true true to end; - position remove_validator; - assert.eq r6.microcredits r8.microcredits ; - remove committee[r0]; - remove bonded[r0]; - add r3.microcredits r8.microcredits into r15; - cast r15 r4 into r16 as unbond_state; - set r16 into unbonding[r0]; - branch.eq true true to end; - position unbond_delegator; - get bonded[r0] into r17; - sub r17.microcredits r1 into r18; - gte r18 10000000u64 into r19; - branch.eq r19 true to decrement_delegator; - branch.eq r19 false to remove_delegator; - position decrement_delegator; - get committee[r17.validator] into r20; - sub r20.microcredits r1 into r21; - cast r21 r20.is_open into r22 as committee_state; - set r22 into committee[r17.validator]; - cast r17.validator r18 into r23 as bond_state; - set r23 into bonded[r0]; - add r3.microcredits r1 into r24; - cast r24 r4 into r25 as unbond_state; - set r25 into unbonding[r0]; - branch.eq true true to end; - position remove_delegator; - get committee[r17.validator] into r26; - sub r26.microcredits r17.microcredits into r27; - cast r27 r26.is_open into r28 as committee_state; - set r28 into committee[r17.validator]; - remove bonded[r0]; - add r3.microcredits r17.microcredits into r29; - cast r29 r4 into r30 as unbond_state; - set r30 into unbonding[r0]; - position end; - -function unbond_delegator_as_validator: - input r0 as address.public; - async unbond_delegator_as_validator self.caller r0 into r1; - output r1 as credits.aleo/unbond_delegator_as_validator.future; - -finalize unbond_delegator_as_validator: - input r0 as address.public; - input r1 as address.public; - get committee[r0] into r2; - assert.eq r2.is_open false ; - contains committee[r1] into r3; - assert.eq r3 false ; - get bonded[r1] into r4; - assert.eq r4.validator r0 ; - sub r2.microcredits r4.microcredits into r5; - cast r5 r2.is_open into r6 as committee_state; - cast 0u64 0u32 into r7 as unbond_state; - get.or_use unbonding[r1] r7 into r8; - add r8.microcredits r4.microcredits into r9; - add block.height 360u32 into r10; - cast r9 r10 into r11 as unbond_state; - set r6 into committee[r0]; - remove bonded[r1]; - set r11 into unbonding[r1]; - -function claim_unbond_public: - async claim_unbond_public self.caller into r0; - output r0 as credits.aleo/claim_unbond_public.future; - -finalize claim_unbond_public: - input r0 as address.public; - get unbonding[r0] into r1; - gte block.height r1.height into r2; - assert.eq r2 true ; - get.or_use account[r0] 0u64 into r3; - add r1.microcredits r3 into r4; - set r4 into account[r0]; - remove unbonding[r0]; - -function set_validator_state: - input r0 as boolean.public; - async set_validator_state self.caller r0 into r1; - output r1 as credits.aleo/set_validator_state.future; - -finalize set_validator_state: - input r0 as address.public; - input r1 as boolean.public; - get committee[r0] into r2; - cast r2.microcredits r1 into r3 as committee_state; - set r3 into committee[r0]; - -function transfer_public: - input r0 as address.public; - input r1 as u64.public; - async transfer_public self.caller r0 r1 into r2; - output r2 as credits.aleo/transfer_public.future; - -finalize transfer_public: - input r0 as address.public; - input r1 as address.public; - input r2 as u64.public; - get account[r0] into r3; - sub r3 r2 into r4; - set r4 into account[r0]; - get.or_use account[r1] 0u64 into r5; - add r5 r2 into r6; - set r6 into account[r1]; - -function transfer_private: - input r0 as credits.record; - input r1 as address.private; - input r2 as u64.private; - sub r0.microcredits r2 into r3; - cast r1 r2 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function transfer_private_to_public: - input r0 as credits.record; - input r1 as address.public; - input r2 as u64.public; - sub r0.microcredits r2 into r3; - cast r0.owner r3 into r4 as credits.record; - async transfer_private_to_public r1 r2 into r5; - output r4 as credits.record; - output r5 as credits.aleo/transfer_private_to_public.future; - -finalize transfer_private_to_public: - input r0 as address.public; - input r1 as u64.public; - get.or_use account[r0] 0u64 into r2; - add r1 r2 into r3; - set r3 into account[r0]; - -function transfer_public_to_private: - input r0 as address.private; - input r1 as u64.public; - cast r0 r1 into r2 as credits.record; - async transfer_public_to_private self.caller r1 into r3; - output r2 as credits.record; - output r3 as credits.aleo/transfer_public_to_private.future; - -finalize transfer_public_to_private: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; - -function join: - input r0 as credits.record; - input r1 as credits.record; - add r0.microcredits r1.microcredits into r2; - cast r0.owner r2 into r3 as credits.record; - output r3 as credits.record; - -function split: - input r0 as credits.record; - input r1 as u64.private; - sub r0.microcredits r1 into r2; - sub r2 10000u64 into r3; - cast r0.owner r1 into r4 as credits.record; - cast r0.owner r3 into r5 as credits.record; - output r4 as credits.record; - output r5 as credits.record; - -function fee_private: - input r0 as credits.record; - input r1 as u64.public; - input r2 as u64.public; - input r3 as field.public; - assert.neq r1 0u64 ; - assert.neq r3 0field ; - add r1 r2 into r4; - sub r0.microcredits r4 into r5; - cast r0.owner r5 into r6 as credits.record; - output r6 as credits.record; - -function fee_public: - input r0 as u64.public; - input r1 as u64.public; - input r2 as field.public; - assert.neq r0 0u64 ; - assert.neq r2 0field ; - add r0 r1 into r3; - async fee_public self.caller r3 into r4; - output r4 as credits.aleo/fee_public.future; - -finalize fee_public: - input r0 as address.public; - input r1 as u64.public; - get account[r0] into r2; - sub r2 r1 into r3; - set r3 into account[r0]; diff --git a/utils/tmp/super_simple/build/main.aleo b/utils/tmp/super_simple/build/main.aleo deleted file mode 100644 index 982afae435..0000000000 --- a/utils/tmp/super_simple/build/main.aleo +++ /dev/null @@ -1,15 +0,0 @@ -import credits.aleo; -program super_simple.aleo; - - - - - - -function main: - input r0 as credits.aleo/credits.record; - input r1 as address.private; - input r2 as u64.private; - call credits.aleo/transfer_private r0 r1 r2 into r3 r4; - output r3 as credits.aleo/credits.record; - output r4 as credits.aleo/credits.record; diff --git a/utils/tmp/super_simple/build/program.json b/utils/tmp/super_simple/build/program.json deleted file mode 100644 index 3f68feaa72..0000000000 --- a/utils/tmp/super_simple/build/program.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "program": "super_simple.aleo", - "version": "0.0.0", - "description": "", - "license": "MIT", - "dependencies": [ - { - "name": "credits.aleo", - "location": "network", - "network": "testnet3" - } - ] -} \ No newline at end of file diff --git a/utils/tmp/super_simple/leo.lock b/utils/tmp/super_simple/leo.lock deleted file mode 100644 index e2fb803bc4..0000000000 --- a/utils/tmp/super_simple/leo.lock +++ /dev/null @@ -1,6 +0,0 @@ -[[package]] -name = "credits.aleo" -network = "testnet3" -location = "network" -checksum = "2ac86d83bca4fbf2c021660875ea1e5b4e65c7a192d9bc020ab02a0f32c86f0d" -dependencies = [] diff --git a/utils/tmp/super_simple/program.json b/utils/tmp/super_simple/program.json deleted file mode 100644 index 3f68feaa72..0000000000 --- a/utils/tmp/super_simple/program.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "program": "super_simple.aleo", - "version": "0.0.0", - "description": "", - "license": "MIT", - "dependencies": [ - { - "name": "credits.aleo", - "location": "network", - "network": "testnet3" - } - ] -} \ No newline at end of file diff --git a/utils/tmp/super_simple/src/main.leo b/utils/tmp/super_simple/src/main.leo deleted file mode 100644 index 9996eba51c..0000000000 --- a/utils/tmp/super_simple/src/main.leo +++ /dev/null @@ -1,7 +0,0 @@ -import credits.aleo; - -program super_simple.aleo { - transition main(arg1: credits.aleo/credits, arg2: address, arg3: u64) -> (credits.aleo/credits.record, credits.aleo/credits.record) { - return credits.aleo/transfer_private(arg1, arg2, arg3); - } -} \ No newline at end of file