1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
use ::strkey::StrKey; use ::amount::Amount; use ::asset::Asset; pub enum Operation { CreateAccount { source: Option<StrKey>, destination: StrKey, amount: Amount, }, Payment { source: Option<StrKey>, destination: StrKey, asset: Asset, amount: Amount, }, PathPayment { source: Option<StrKey> }, ManageOffer { source: Option<StrKey> }, CreatePassiveOffer { source: Option<StrKey> }, SetOptions { source: Option<StrKey> }, ChangeTrust { source: Option<StrKey> }, AllowTrust { source: Option<StrKey> }, AccountMerge { source: Option<StrKey>, destination: StrKey, }, Inflation { source: Option<StrKey> }, ManageData { source: Option<StrKey> }, } impl Operation { pub fn create_account(destination: StrKey, amount: Amount) -> Operation { Operation::CreateAccount { source: None, destination: destination, amount: amount, } } pub fn create_account_with_source(source: StrKey, destination: StrKey, amount: Amount) -> Operation { Operation::CreateAccount { source: Some(source), destination: destination, amount: amount, } } pub fn payment(destination: StrKey, asset: Asset, amount: Amount) -> Operation { Operation::Payment { source: None, destination: destination, asset: asset, amount: amount, } } pub fn payment_with_source(source: StrKey, destination: StrKey, asset: Asset, amount: Amount) -> Operation { Operation::Payment { source: Some(source), destination: destination, asset: asset, amount: amount, } } pub fn inflation() -> Operation { Operation::Inflation { source: None } } pub fn inflation_with_source(source: StrKey) -> Operation { Operation::Inflation { source: Some(source) } } }