コード例 #1
0
        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,
                    }
                }
            });
        }
コード例 #2
0
        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')
                    }
                }
            });
        }