Delete programs/native/move_funds
This commit is contained in:
parent
9447537d8c
commit
113b002095
|
@ -109,7 +109,6 @@ sys-info = "0.5.6"
|
||||||
tokio = "0.1"
|
tokio = "0.1"
|
||||||
tokio-codec = "0.1"
|
tokio-codec = "0.1"
|
||||||
untrusted = "0.6.2"
|
untrusted = "0.6.2"
|
||||||
move_funds = { path = "programs/native/move_funds" }
|
|
||||||
noop = { path = "programs/native/noop" }
|
noop = { path = "programs/native/noop" }
|
||||||
bpf_loader = { path = "programs/native/bpf_loader" }
|
bpf_loader = { path = "programs/native/bpf_loader" }
|
||||||
lua_loader = { path = "programs/native/lua_loader" }
|
lua_loader = { path = "programs/native/lua_loader" }
|
||||||
|
@ -137,7 +136,6 @@ name = "chacha"
|
||||||
members = [
|
members = [
|
||||||
".",
|
".",
|
||||||
"common",
|
"common",
|
||||||
"programs/native/move_funds",
|
|
||||||
"programs/native/noop",
|
"programs/native/noop",
|
||||||
"programs/native/bpf_loader",
|
"programs/native/bpf_loader",
|
||||||
"programs/native/lua_loader",
|
"programs/native/lua_loader",
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
[package]
|
|
||||||
name = "move_funds"
|
|
||||||
version = "0.10.0"
|
|
||||||
authors = ["Solana Maintainers <maintainers@solana.com>"]
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
bincode = "1.0.0"
|
|
||||||
generic-array = { version = "0.12.0", default-features = false, features = ["serde"] }
|
|
||||||
solana_program_interface = { path = "../../../common", version = "0.10.0" }
|
|
||||||
|
|
||||||
[lib]
|
|
||||||
name = "move_funds"
|
|
||||||
crate-type = ["cdylib"]
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
extern crate bincode;
|
|
||||||
extern crate solana_program_interface;
|
|
||||||
|
|
||||||
use bincode::deserialize;
|
|
||||||
use solana_program_interface::account::KeyedAccount;
|
|
||||||
|
|
||||||
#[no_mangle]
|
|
||||||
pub extern "C" fn process(keyed_accounts: &mut Vec<KeyedAccount>, data: &[u8]) -> bool {
|
|
||||||
let tokens: i64 = deserialize(data).unwrap();
|
|
||||||
if keyed_accounts[0].account.tokens >= tokens {
|
|
||||||
keyed_accounts[0].account.tokens -= tokens;
|
|
||||||
keyed_accounts[1].account.tokens += tokens;
|
|
||||||
true
|
|
||||||
} else {
|
|
||||||
println!(
|
|
||||||
"Insufficient funds, asked {}, only had {}",
|
|
||||||
tokens, keyed_accounts[0].account.tokens
|
|
||||||
);
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(test)]
|
|
||||||
mod tests {
|
|
||||||
use super::*;
|
|
||||||
use bincode::serialize;
|
|
||||||
use solana_program_interface::account::Account;
|
|
||||||
use solana_program_interface::pubkey::Pubkey;
|
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_move_funds() {
|
|
||||||
let tokens: i64 = 100;
|
|
||||||
let data: Vec<u8> = serialize(&tokens).unwrap();
|
|
||||||
let keys = vec![Pubkey::default(); 2];
|
|
||||||
let mut accounts = vec![Account::default(), Account::default()];
|
|
||||||
accounts[0].tokens = 100;
|
|
||||||
accounts[1].tokens = 1;
|
|
||||||
|
|
||||||
{
|
|
||||||
let mut keyed_accounts: Vec<KeyedAccount> = Vec::new();
|
|
||||||
for (key, account) in keys.iter().zip(&mut accounts).collect::<Vec<_>>() {
|
|
||||||
infos.push(KeyedAccount { key, account });
|
|
||||||
}
|
|
||||||
|
|
||||||
process(&mut keyed_accounts, &data);
|
|
||||||
}
|
|
||||||
assert_eq!(0, accounts[0].tokens);
|
|
||||||
assert_eq!(101, accounts[1].tokens);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue