public async Task StartAsync() { string[] ChainHashList = Config.getStringArray("ChainHashList"); string ChainHash = Config.getValue("ChainHash"); string WIF = Config.getValue("WIF"); string contractHash = Config.getValue("TestContract"); UInt160 address = ZoroHelper.GetPublicKeyHashFromWIF(WIF); var nativeBcp = UInt160.Parse(Config.getValue("NativeNEP5")); Console.WriteLine("Choose Transaction Type,0 - Contract Invoke NativeNEP5, 1 - Contract Transfer NativeNEP5, 2 - Contract Transfer_App NativeNEP5, 3 - TestContract Balance:"); int transType = int.Parse(Console.ReadLine()); if (transType == 0) { await ContractInvokeTestAsync(contractHash, address, nativeBcp); } if (transType == 1) { await SendRawTransactionTestAsync(contractHash, WIF, nativeBcp, transType); } if (transType == 2) { await SendRawTransactionTestAsync(contractHash, WIF, nativeBcp, transType); } if (transType == 3) { await BalanceOfNativeNEP5(nativeBcp, UInt160.Parse(contractHash), ChainHashList); } }
private void Test() { Console.Write("选择交易类型,0 - NEP5 SmartContract, 1 - NativeNEP5, 2 - BCP, 3 - InvokeNEP5:"); var param1 = Console.ReadLine(); Console.Write("输入并发的数量:"); var param2 = Console.ReadLine(); Console.Write("发送几次交易:"); var param3 = Console.ReadLine(); Console.Write("转账金额:"); var param4 = Console.ReadLine(); Console.Write("目标账户随机, 0 - no, 1 - yes:"); var param5 = Console.ReadLine(); Console.Write("GasPrice随机, 0 - no, 1 - yes:"); var param6 = Console.ReadLine(); transactionType = int.Parse(param1); transferCount = int.Parse(param3); concurrencyCount = int.Parse(param2); transferValue = param4; randomTargetAddress = int.Parse(param5) == 1; randomGasPrice = int.Parse(param6) == 1; string[] chainHashList = Config.getStringArray("ChainHashList"); string WIF = Config.getValue("WIF"); string targetWIF = Config.getValue("targetWIF"); keypair = ZoroHelper.GetKeyPairFromWIF(WIF); scriptHash = ZoroHelper.GetPublicKeyHash(keypair.PublicKey); targetAddress = ZoroHelper.GetPublicKeyHashFromWIF(targetWIF); string contractHash = Config.getValue("ContractHash"); nep5ContractHash = UInt160.Parse(contractHash); string nativeNEP5Hash = Config.getValue("NativeNEP5"); nativeNEP5AssetId = UInt160.Parse(nativeNEP5Hash); BCPAssetId = Genesis.BcpContractAddress; if (randomTargetAddress) { InitializeRandomTargetAddressList(transferCount); } if (transactionType == 0 || transactionType == 1 || transactionType == 2) { Console.WriteLine($"From:{WIF}"); Console.WriteLine($"To:{targetWIF}"); Console.WriteLine($"Count:{transferCount}"); Console.WriteLine($"Value:{transferValue}"); } cancelTokenSource = new CancellationTokenSource(); Task.Run(() => RunTask(chainHashList)); Console.WriteLine("输入回车键停止:"); var input = Console.ReadLine(); cancelTokenSource.Cancel(); }
private void Test() { string WIF = Config.getValue("WIF"); string targetWIF = Config.getValue("targetWIF"); keypair = ZoroHelper.GetKeyPairFromWIF(WIF); scriptHash = ZoroHelper.GetPublicKeyHash(keypair.PublicKey); targetscripthash = ZoroHelper.GetPublicKeyHashFromWIF(targetWIF); string path = Config.getValue("LevelDB"); Store appStore = new LevelDBStore(path); Snapshot snapshot = appStore.GetSnapshot(); Console.WriteLine("请输入数量:"); var param = Console.ReadLine(); int count = int.Parse(param); if (count <= 0) { return; } Random rnd = new Random(); DateTime dt = DateTime.Now; List <Transaction> txns = new List <Transaction>(); for (int i = 0; i < count; i++) { txns.Add(MakeTestTransaction(rnd)); } Console.Write("maketxn, "); PrintTimeCost(dt); dt = DateTime.Now; foreach (var tx in txns) { tx.Verify(snapshot); } Console.Write("verify, "); PrintTimeCost(dt); dt = DateTime.Now; foreach (var tx in txns) { tx.Reverify(snapshot); } Console.Write("reverify, "); PrintTimeCost(dt); snapshot.Dispose(); appStore.Dispose(); }
private void Test() { string WIF = Config.getValue("WIF"); string targetWIF = Config.getValue("targetWIF"); keypair = ZoroHelper.GetKeyPairFromWIF(WIF); scriptHash = ZoroHelper.GetPublicKeyHash(keypair.PublicKey); targetscripthash = ZoroHelper.GetPublicKeyHashFromWIF(targetWIF); Console.WriteLine("请输入数量:"); var param = Console.ReadLine(); int count = int.Parse(param); if (count <= 0) { return; } Random rnd = new Random(); DateTime dt = DateTime.Now; List <Transaction> txns = new List <Transaction>(); for (int i = 0; i < count; i++) { txns.Add(MakeTestTransaction(rnd)); } Console.Write("maketxn, "); PrintTimeCost(dt); dt = DateTime.Now; IEnumerable <CompressedTransactionPayload> payloads = CompressedTransactionPayload.CreateGroup(txns.ToArray()); Console.Write("compress, "); PrintTimeCost(dt); dt = DateTime.Now; foreach (var payload in payloads) { Transaction[] txn = CompressedTransactionPayload.DecompressTransactions(payload.CompressedData); foreach (var tx in txn) { } } Console.Write("decompress, "); PrintTimeCost(dt); }
public async Task StartAsync() { string WIF = Config.getValue("WIF"); string ContractHash = Config.getValue("ContractHash"); string[] ChainHashList = Config.getStringArray("ChainHashList"); string nativeNEP5Hash = Config.getValue("NativeNEP5"); UInt160 address = ZoroHelper.GetPublicKeyHashFromWIF(WIF); Console.WriteLine($"Account: {WIF}"); await BalanceOfBCP(address, ChainHashList); await BalanceOfNEP5Contract(ContractHash, address, ChainHashList); await BalanceOfNativeNEP5(nativeNEP5Hash, address, ChainHashList); }
public async Task TransferNativeNEP5Async(string chainHash, string WIF, string targetWIF, string assetId, BigInteger value) { KeyPair keypair = ZoroHelper.GetKeyPairFromWIF(WIF); UInt160 scriptHash = ZoroHelper.GetPublicKeyHash(keypair.PublicKey); UInt160 targetscripthash = ZoroHelper.GetPublicKeyHashFromWIF(targetWIF); using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitSysCall("Zoro.NativeNEP5.Call", "Transfer", UInt160.Parse(assetId), scriptHash, targetscripthash, value); var result = await ZoroHelper.SendInvocationTransaction(sb.ToArray(), keypair, chainHash, Config.GasPrice); MyJson.JsonNode_Object resJO = (MyJson.JsonNode_Object)MyJson.Parse(result); Console.WriteLine(resJO.ToString()); } }
async Task SendTransaction(UInt160 assetId, string[] wif_list, string targetWIF, BigInteger value, string chainHash) { KeyPair[] keypairs = wif_list.Select(p => ZoroHelper.GetKeyPairFromWIF(p)).ToArray(); int m = keypairs.Length - (keypairs.Length - 1) / 3; UInt160 scriptHash = ZoroHelper.GetMultiSigRedeemScriptHash(m, keypairs); UInt160 targetscripthash = ZoroHelper.GetPublicKeyHashFromWIF(targetWIF); using (ScriptBuilder sb = new ScriptBuilder()) { sb.EmitSysCall("Zoro.NativeNEP5.Call", "Transfer", assetId, scriptHash, targetscripthash, value); var result = await ZoroHelper.SendInvocationTransaction(sb.ToArray(), m, keypairs, chainHash, Config.GasPrice); MyJson.JsonNode_Object resJO = (MyJson.JsonNode_Object)MyJson.Parse(result); Console.WriteLine(resJO.ToString()); } }
private void Test() { Console.Write("输入并发的数量:"); var param2 = Console.ReadLine(); Console.Write("发送几次交易:"); var param3 = Console.ReadLine(); Console.Write("目标账户随机, 0 - no, 1 - yes:"); var param5 = Console.ReadLine(); Console.Write("购买数量随机, 0 - no, 1 - yes:"); var param6 = Console.ReadLine(); transferCount = int.Parse(param3); concurrencyCount = int.Parse(param2); randomTargetAddress = int.Parse(param5) == 1; randomBuyCount = int.Parse(param6) == 1; string[] chainHashList = Config.getStringArray("ChainHashList"); string WIF = Config.getValue("WIF"); string targetWIF = Config.getValue("targetWIF"); keypair = ZoroHelper.GetKeyPairFromWIF(WIF); scriptHash = ZoroHelper.GetPublicKeyHash(keypair.PublicKey); targetAddress = ZoroHelper.GetPublicKeyHashFromWIF(targetWIF); nftHash = UInt160.Parse(Config.getValue("nftHash")); BCPAssetId = Genesis.BcpContractAddress; if (randomTargetAddress) { InitializeRandomTargetAddressList(transferCount); } cancelTokenSource = new CancellationTokenSource(); Task.Run(() => RunTask(chainHashList)); Console.WriteLine("输入回车键停止:"); var input = Console.ReadLine(); cancelTokenSource.Cancel(); }