private MicroCoin.Transactions.TransferTransaction TransactionRequestToTransaction(TransactionRequest data) { AccountDTO account = client.GetAccount(data.Sender); string pubkey = account.EncPubKey; PublicKeyDTO key = client.DecodePubKey(pubkey, null); return(new MicroCoin.Transactions.TransferTransaction { Amount = (ulong)(data.Amount * 10000), Fee = (ulong)(data.Fee * 10000M), Payload = data.Payload, SignerAccount = data.Sender, TargetAccount = data.Target, TransactionStyle = MicroCoin.Transactions.TransferTransaction.TransferType.Transaction, TransactionType = MicroCoin.Transactions.TransactionType.Transaction, NumberOfOperations = client.GetAccount(data.Sender).NumOperations + 1, AccountKey = new ECKeyPair { CurveType = CurveType.Secp256K1, PublicKey = new ECPoint { X = (Hash)key.X, Y = (Hash)key.Y, } } }); }
private MicroCoin.Transactions.TransferTransaction PurchaseAccountRequestToTransaction(PurchaseAccountRequest data) { var account = client.GetAccount(data.AccountNumber); var founder = client.GetAccount(data.FounderAccount); string pubkey = founder.EncPubKey; PublicKeyDTO key = client.DecodePubKey(pubkey, null); return(new MicroCoin.Transactions.TransferTransaction { Amount = (ulong)(account.Price), Fee = (ulong)(data.Fee * 10000M), SignerAccount = founder.AccountNumber, SellerAccount = account.SellerAccount, TargetAccount = account.AccountNumber, TransactionStyle = MicroCoin.Transactions.TransferTransaction.TransferType.BuyAccount, TransactionType = MicroCoin.Transactions.TransactionType.BuyAccount, NumberOfOperations = founder.NumOperations + 1, AccountKey = new ECKeyPair { CurveType = (CurveType)key.KeyType, PublicKey = new ECPoint { X = (Hash)key.X, Y = (Hash)key.Y } }, AccountPrice = (ulong)(account.Price), NewAccountKey = new ECKeyPair { CurveType = Enum.Parse <CurveType>(data.NewKey.CurveType, true), PublicKey = new ECPoint { X = (Hash)data.NewKey.X.PadLeft(64, '0'), Y = (Hash)data.NewKey.Y.PadLeft(64, '0') } } }); }