public void AddressVerfy() { bool result = AddressTools.AddressVerfy("main", "fiiimB6yxbLHKU2YuLhSDSjiB5mdWXt51duHBi"); //bool rbsult = AddressTools.AddressVerfy("test", "fiiit2sTHKSFrYJHo1ddUNNHCKqJnAhjATgr6c"); Assert.IsTrue(result); }
public bool VerfyAddress(string netType, string account) { bool result = false; try { result = AddressTools.AddressVerfy(netType, account); } catch (Exception ex) { Logger.Singleton.Error(ex.Message); } return(result); }
public bool VerfyAddress(NetworkType network, string account) { bool result = false; try { result = AddressTools.AddressVerfy(network.ToString().ToLower(), account); } catch (Exception ex) { Logger.Singleton.Error(ex.ToString()); } return(result); }
public Task <AddEntryResult> AddEntry(string logEntry) { isModified = true; entries.Add(logEntry); var id = AddressTools.MakeAddress(Info.TrainId, Info.BagId, entries.Count - 1); var res = new AddEntryResult { Index = entries.Count - 1, MessagesInBucket = entries.Count }; return(Task.FromResult(res)); }
public async Task TestSendToAddress() { ApiResponse blockChainResponse = await BlockChainEngineApi.GetBlockChainStatus(); if (!blockChainResponse.HasError) { //地址 string address = "fiiitCPyohiEPn9q11AXCdvVDouoVvgojXBcVj"; //地址校验 BlockChainStatus blockChainStatus = blockChainResponse.GetResult <BlockChainStatus>(); //验证address if (AddressTools.AddressVerfy(blockChainStatus.ChainNetwork, address)) { //判断是否加密 ApiResponse transactionResponse = await TransactionApi.GetTxSettings(); if (!transactionResponse.HasError) { TransactionFeeSetting settingResult = transactionResponse.GetResult <TransactionFeeSetting>(); if (settingResult.Encrypt) { //先解锁 string password = "******"; ApiResponse unlockResponse = await WalletManagementApi.WalletPassphrase(password); if (!unlockResponse.HasError) { ApiResponse response = await TransactionApi.SendToAddress(address, 50000000, "this is your request", "John", false); Assert.IsFalse(response.HasError); string result = response.GetResult <string>(); Assert.IsNotNull(result); } ApiResponse lockResponse = await WalletManagementApi.WalletLock(); } else { ApiResponse response = await TransactionApi.SendToAddress(address, 50000000, "this is your request", "John", false); Assert.IsFalse(response.HasError); string result = response.GetResult <string>(); Assert.IsNotNull(result); } } } } }
public async Task AddNewAddressBookItem() { //fiiit6ZgKDM5ZyDYhkSWDsUmRZpkbRQf7NWiKT //先根据接口获取网络类型 ApiResponse blockChainResponse = await BlockChainEngineApi.GetBlockChainStatus(); if (!blockChainResponse.HasError) { BlockChainStatus blockChainStatus = blockChainResponse.GetResult <BlockChainStatus>(); //验证address if (AddressTools.AddressVerfy(blockChainStatus.ChainNetwork, "fiiit6ZgKDM5ZyDYhkSWDsUmRZpkbRQf7NWiKT")) { ApiResponse addressBookResponse = await AddressBookApi.AddNewAddressBookItem("fiiit6ZgKDM5ZyDYhkSWDsUmRZpkbRQf7NWiKT", "label or comment"); if (!addressBookResponse.HasError) { //do something } } } }
public async Task <ulong> AddMessage(string message) { if (currentBucket == null) { await Init(); } if (currentBucket .Value .MessagesCount == BagInfo.BagSettings.PerBucketMessages) { var b = await GetBucket(new BucketAddress { TrainId = trainId, BagId = BagInfo.Address.BagId, BucketId = currentBucket.Value.Bucket.Info.BucketId + 1 }); await metaStorage.StoreCurrentBucketIndexForBag(BagInfo.Address, b.Info.BucketId); currentBucket = new LocalBucket { Bucket = b, MessagesCount = 0 }; } var entry = await currentBucket.Value .Bucket.AddEntry(message); currentBucket = new LocalBucket { Bucket = currentBucket.Value.Bucket, MessagesCount = entry.MessagesInBucket }; var index = (currentBucket.Value.Bucket.Info.BucketId * BagInfo.BagSettings.PerBucketMessages) + entry.Index; return(AddressTools.MakeAddress(BagInfo.Address.TrainId, BagInfo.Address.BagId, index)); }
static void Run(string[] args) { var app = new CommandLineApplication(false); app.HelpOption("-?|-h|--help"); app.OnExecute(() => { app.ShowHelp(); return; }); app.Command("mining", command => { command.Description = "begin mining"; command.HelpOption("-?|-h|--help"); CommandArgument nameArgument = command.Argument("[minerName]", "minerName"); CommandArgument addressArgument = command.Argument("[walletAddress]", "walletAddress"); command.OnExecute(async() => { if (nameArgument != null && !string.IsNullOrEmpty(nameArgument.Value) && addressArgument != null && !string.IsNullOrEmpty(addressArgument.Value)) { string name = nameArgument.Value; string address = addressArgument.Value; Program program = new Program(); BlockChainStatus chainStatus = await program.GetChainStatus(); if (chainStatus == null) { app.Out.WriteLine("there is something wrong with the api, you should check the fiiichain"); return; } //验证本地区块高度和网络区块高度 ApiResponse response = await NetworkApi.GetBlockChainInfo(); if (!response.HasError) { BlockChainInfo info = response.GetResult <BlockChainInfo>(); if (info.IsRunning) { if (info.RemoteLatestBlockHeight <= info.LocalLastBlockHeight) { command.Out.WriteLine($"current network is {chainStatus.ChainNetwork}"); //validate wallet address if (AddressTools.AddressVerfy(chainStatus.ChainNetwork, address)) { command.Out.WriteLine($"address verify success. prepare to mine"); await BlockMining.MiningAsync(name, address); } else { command.Out.WriteLine($"address verify fail. address: {address} is invalid"); return; } } else { command.Out.WriteLine("Block Chain is in sync, please try it later"); return; } } else { command.Out.WriteLine("Block Chain has stopped"); return; } } else { command.Out.WriteLine(response.Error.Message); return; } } else { command.ShowHelp(); return; } }); }); app.Command("height", command => { command.Description = "view current block height"; command.OnExecute(async() => { Program program = new Program(); BlockChainStatus chainStatus = await program.GetChainStatus(); if (chainStatus == null) { app.Out.WriteLine("there is something wrong with the api, you should check the fiiichain"); return; } ApiResponse response = await BlockChainEngineApi.GetBlockCount(); if (!response.HasError) { long result = response.GetResult <long>(); command.Out.WriteLine($"current block height is {result}"); } else { command.Out.WriteLine($"{response.Error.Message}"); } }); }); app.Command("balance", command => { command.Description = "view wallet balance"; command.OnExecute(async() => { Program program = new Program(); BlockChainStatus chainStatus = await program.GetChainStatus(); if (chainStatus == null) { app.Out.WriteLine("there is something wrong with the api, you should check the fiiichain"); return; } ApiResponse response = await UtxoApi.GetTxOutSetInfo(); if (!response.HasError) { TxOutSet set = response.GetResult <TxOutSet>(); command.Out.WriteLine($"wallet balance is :{set.Total_amount}"); } }); }); app.Command("transaction", command => { command.Description = "view recent transaction record(default 5 content)"; CommandArgument recordArgument = command.Argument("[count]", "record content"); command.OnExecute(async() => { if (recordArgument != null && !string.IsNullOrEmpty(recordArgument.Value)) { if (int.TryParse(recordArgument.Value, out int count)) { Program program = new Program(); BlockChainStatus chainStatus = await program.GetChainStatus(); if (chainStatus == null) { app.Out.WriteLine("there is something wrong with the api, you should check the fiiichain"); return; } ApiResponse response = await TransactionApi.ListTransactions("*", count); if (!response.HasError) { List <Payment> result = response.GetResult <List <Payment> >(); if (result != null && result.Count > 0) { command.Out.WriteLine("recent transaction record blow:"); foreach (var item in result) { //time(需要转换为DataTime), comment, amount string time = new DateTime(1970, 1, 1).AddMilliseconds(item.Time).ToString("yyyy-MM-dd HH:mm:ss"); command.Out.WriteLine($"Time:{time}; Comment:{item.Comment}; Amount:{item.Amount}"); } } else { command.Out.WriteLine("no recent transaction record."); } } } else { command.ShowHelp(); } } else { Program program = new Program(); BlockChainStatus chainStatus = await program.GetChainStatus(); if (chainStatus == null) { app.Out.WriteLine("there is something wrong with the api, you should check the fiiichain"); return; } ApiResponse response = await TransactionApi.ListTransactions(); if (!response.HasError) { List <Payment> result = response.GetResult <List <Payment> >(); if (result != null && result.Count > 0) { command.Out.WriteLine("recent transaction record blow:"); foreach (var item in result) { //time(需要转换为DataTime), comment, amount string time = new DateTime(1970, 1, 1).AddMilliseconds(item.Time).ToString("yyyy-MM-dd HH:mm:ss"); command.Out.WriteLine($"Time:{time}; Comment:{item.Comment}; Amount:{item.Amount}"); } } else { command.Out.WriteLine("no recent transaction record."); } } } }); }); /* * if (args.Length > 1 && args[0].ToLower() == "fiiipay" && IsContainsCommand(args[1])) * { * List<string> list = new List<string>(args); * list.RemoveAt(0); * app.Execute(list.ToArray()); * } */ if (args != null && args.Length > 0 && IsContainsCommand(args[0])) { app.Execute(args); } else { app.Execute(new[] { "-?" }); } }
void OnRequestCreateUrl(UrlInfo urlInfo) { if (urlInfo == null) { return; } var netstr = OmniCoinSetting.NodeTypeStr; if (!AddressTools.AddressVerfy(netstr, urlInfo.Address)) { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Error_Address)); return; } switch (urlInfo.Mode) { case UrlMode.CreatePay: if (UrlInfos.Any(x => x.Address.Equals(urlInfo.Address))) { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Address_Existed)); return; } StaticViewModel.GlobalViewModel.IsLoading = true; var result = AddressBookService.Default.UpsertAddrBookItem(urlInfo.Address, urlInfo.Tag); if (!result.IsFail) { LoadUrls(); } else { ShowMessage(result.GetErrorMsg()); } break; case UrlMode.Edit: if (UrlInfos.Any(x => x.Address.Equals(urlInfo.Address) && x.Id != urlInfo.Id)) { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Address_Existed)); return; } var updateResult = AddressBookService.Default.UpsertAddrBookItem(urlInfo.Address, urlInfo.Tag, urlInfo.Id); if (!updateResult.IsFail) { var selectedUrlinfo = UrlInfos.FirstOrDefault(x => x.Id == urlInfo.Id); if (selectedUrlinfo == null) { UrlInfos.Add(urlInfo); } else { selectedUrlinfo.Tag = urlInfo.Tag; selectedUrlinfo.Address = urlInfo.Address; selectedUrlinfo.Mode = urlInfo.Mode; SelectedItem = selectedUrlinfo; } } else { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Edit_Fail)); } break; default: break; } }
void OnRequestCreateUrl(UrlInfo urlInfo) { if (urlInfo == null) { return; } var netstr = "mainnet"; switch (NodeSetting.CurrentNetworkType) { case Biz.NetworkType.MainnetPort: break; case Biz.NetworkType.TestNetPort: netstr = "testnet"; break; default: break; } if (!AddressTools.AddressVerfy(netstr, urlInfo.Address)) { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Error_Address)); return; } switch (urlInfo.Mode) { case UrlMode.CreatePay: if (UrlInfos.Any(x => x.Address.Equals(urlInfo.Address))) { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Address_Existed)); return; } var result = AddressBookService.Default.AddNewAddressBookItem(urlInfo.Address, urlInfo.Tag); if (!result.IsFail) { //UrlInfos.Add(urlInfo); LoadUrls(); } else { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Add_Fail)); } break; case UrlMode.Edit: if (UrlInfos.Any(x => x.Address.Equals(urlInfo.Address) && x.Id != urlInfo.Id)) { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Address_Existed)); return; } var updateResult = AddressBookService.Default.AddNewAddressBookItem(urlInfo.Address, urlInfo.Tag); if (!updateResult.IsFail) { var urlinfo = UrlInfos.FirstOrDefault(x => x.Id == urlInfo.Id); if (urlinfo == null) { UrlInfos.Add(urlInfo); } else { urlinfo.Tag = urlInfo.Tag; urlinfo.Address = urlInfo.Address; } } else { ShowMessage(LanguageService.Default.GetLanguageValue(MessageKeys.Edit_Fail)); } SelectedItem.Address = urlInfo.Address; SelectedItem.Tag = urlInfo.Tag; SelectedItem.Mode = urlInfo.Mode; break; default: break; } }
public bool VerfyAddress(string netType, string account) { bool result = AddressTools.AddressVerfy(netType, account); return(result); }