Ejemplo n.º 1
0
        OpenWithReceiveTransferBlock CreateReceiveDiscountBlockOnAcc2(NonFungibleToken discount_token)
        {
            _OpenAccount2Block = new OpenWithReceiveTransferBlock
            {
                AccountID   = AccountId2,
                AccountType = AccountTypes.Standard,
                ServiceHash = string.Empty,
                SourceHash  = _SendTransferBlock.Hash,
                Fee         = 0,
                FeeType     = AuthorizationFeeTypes.NoFee,
                Balances    = new Dictionary <string, decimal>()
            };

            _OpenAccount2Block.Balances.Add("Custom.DISC", 50);

            if (discount_token != null)
            {
                _OpenAccount2Block.NonFungibleToken = discount_token;
            }

            _OpenAccount2Block.InitializeBlock(null, PrivateKey2, AccountId2);

            // _OpenAccountBlock.Signature = Signatures.GetSignature(PrivateKey2, _OpenAccountBlock.Hash);

            return(_OpenAccount2Block);
        }
Ejemplo n.º 2
0
        private async Task <AuthorizationAPIResult> OpenStandardAccountWithReceiveBlock(NewTransferAPIResult new_transfer_info)
        {
            var svcBlockResult = await _rpcClient.GetLastServiceBlockAsync();

            if (svcBlockResult.ResultCode != APIResultCodes.Success)
            {
                throw new Exception("Unable to get latest service block.");
            }

            var openReceiveBlock = new OpenWithReceiveTransferBlock
            {
                AccountType      = AccountTypes.Standard,
                AccountID        = _accountId,
                ServiceHash      = svcBlockResult.GetBlock().Hash,
                SourceHash       = new_transfer_info.SourceHash,
                Balances         = new Dictionary <string, long>(),
                Fee              = 0,
                FeeType          = AuthorizationFeeTypes.NoFee,
                FeeCode          = LyraGlobal.OFFICIALTICKERCODE,
                NonFungibleToken = new_transfer_info.NonFungibleToken,
                VoteFor          = null
            };

            openReceiveBlock.Balances.Add(new_transfer_info.Transfer.TokenCode, new_transfer_info.Transfer.Amount.ToBalanceLong());
            openReceiveBlock.InitializeBlock(null, _signer);

            //openReceiveBlock.Signature = Signatures.GetSignature(PrivateKey, openReceiveBlock.Hash);

            var result = await _rpcClient.ReceiveTransferAndOpenAccountAsync(openReceiveBlock);

            //PrintCon(string.Format("{0}> ", AccountName));
            return(result);
        }
Ejemplo n.º 3
0
        async Task <AuthorizationAPIResult> INodeAPI.ReceiveTransferAndOpenAccount(OpenWithReceiveTransferBlock block)
        {
            var request = new ReceiveTransferAndOpenAccountRequest()
            {
                OpenReceiveBlockJson = Json(block)
            };
            var result = await ReceiveTransferAndOpenAccountAsync(request);

            return(ToAAR(result));
        }
Ejemplo n.º 4
0
        private async Task <AuthorizationAPIResult> OpenStandardAccountWithReceiveBlockAsync(NewTransferAPIResult2 new_transfer_info)
        {
            var svcBlockResult = await _node.GetLastServiceBlockAsync();

            if (svcBlockResult.ResultCode != APIResultCodes.Success)
            {
                throw new Exception("Unable to get latest service block.");
            }

            var openReceiveBlock = new OpenWithReceiveTransferBlock
            {
                AccountType      = AccountTypes.Standard,
                AccountID        = _accountId,
                ServiceHash      = svcBlockResult.GetBlock().Hash,
                SourceHash       = new_transfer_info.SourceHash,
                Balances         = new Dictionary <string, long>(),
                Fee              = 0,
                FeeType          = AuthorizationFeeTypes.NoFee,
                FeeCode          = LyraGlobal.OFFICIALTICKERCODE,
                NonFungibleToken = new_transfer_info.NonFungibleToken,
                VoteFor          = null
            };

            foreach (var chg in new_transfer_info.Transfer.Changes)
            {
                openReceiveBlock.Balances.Add(chg.Key, chg.Value.ToBalanceLong());
            }
            await openReceiveBlock.InitializeBlockAsync(null, _signer);

            //openReceiveBlock.Signature = Signatures.GetSignature(PrivateKey, openReceiveBlock.Hash);

            var result = await _trans.ReceiveTransferAndOpenAccountAsync(openReceiveBlock);

            if (result.ResultCode == APIResultCodes.Success)
            {
                LastBlock = openReceiveBlock;
            }
            else
            {
                LastBlock = null;
            }
            return(result);
        }
Ejemplo n.º 5
0
 public async Task <AuthorizationAPIResult> ReceiveTransferAndOpenAccount(OpenWithReceiveTransferBlock openReceiveBlock)
 {
     CheckSyncState();
     return(await _trans.ReceiveTransferAndOpenAccount(openReceiveBlock));
 }
 public async Task <AuthorizationAPIResult> ReceiveTransferAndOpenAccount(OpenWithReceiveTransferBlock openReceiveBlock)
 {
     return(await Pre_PrepareAsync(openReceiveBlock).ConfigureAwait(false));
 }
 public async Task <AuthorizationAPIResult> ReceiveTransferAndOpenAccount(OpenWithReceiveTransferBlock block)
 {
     return(await PostBlock("ReceiveTransferAndOpenAccount", block));
 }
Ejemplo n.º 8
0
 public async Task <AuthorizationAPIResult> ReceiveTransferAndOpenAccountAsync(OpenWithReceiveTransferBlock openReceiveBlock)
 {
     if (!CheckServiceStatus())
     {
         return(null);
     }
     return(await _trans.ReceiveTransferAndOpenAccountAsync(openReceiveBlock));
 }