コード例 #1
0
        private static IClientTrade[] CreateTradeRecordForClientWithVolumes(LimitQueueItem.LimitTradeInfo trade,
                                                                            ILimitOrder limitOrder,
                                                                            string btcTransactionId, IWalletCredentials walletCredentialsLimitA,
                                                                            IWalletCredentials walletCredentialsLimitB, double limitVolume, double oppositeLimitVolume)
        {
            var clientId = walletCredentialsLimitA?.ClientId ?? limitOrder.ClientId;

            var mutlisig     = walletCredentialsLimitA?.MultiSig;
            var fromMultisig = walletCredentialsLimitB?.MultiSig;

            var depositAssetRecord  = CreateCommonPartForTradeRecord(trade, limitOrder, btcTransactionId);
            var withdrawAssetRecord = CreateCommonPartForTradeRecord(trade, limitOrder, btcTransactionId);

            depositAssetRecord.ClientId    = withdrawAssetRecord.ClientId = clientId;
            depositAssetRecord.AddressFrom = withdrawAssetRecord.AddressFrom = fromMultisig;
            depositAssetRecord.AddressTo   = withdrawAssetRecord.AddressTo = mutlisig;
            depositAssetRecord.Multisig    = withdrawAssetRecord.Multisig = mutlisig;

            depositAssetRecord.Amount  = oppositeLimitVolume;
            depositAssetRecord.AssetId = trade.OppositeAsset;

            withdrawAssetRecord.Amount  = -1 * limitVolume;
            withdrawAssetRecord.AssetId = trade.Asset;

            depositAssetRecord.Id  = Utils.GenerateRecordId(depositAssetRecord.DateTime);
            withdrawAssetRecord.Id = Utils.GenerateRecordId(withdrawAssetRecord.DateTime);

            return(new IClientTrade[] { depositAssetRecord, withdrawAssetRecord });
        }
コード例 #2
0
 private static ClientTrade CreateCommonPartForTradeRecord(LimitQueueItem.LimitTradeInfo trade, ILimitOrder limitOrder,
                                                           string btcTransactionId)
 {
     return(new ClientTrade
     {
         DateTime = trade.Timestamp,
         Price = trade.Price,
         LimitOrderId = limitOrder.Id,
         OppositeLimitOrderId = trade.OppositeOrderId,
         TransactionId = btcTransactionId,
         IsLimitOrderResult = true
     });
 }