public async Task TestSendIcxTransaction() { var provider = GetMockProvider <Bytes>(); var fromAddress = new Address("hxbe258ceb872e08851f1f59694dac2558708ece11"); var toAddress = new Address("hx5bfdb090f43a808005ffc27c25b213145e80b7cd"); var transaction = TransactionBuilder.CreateBuilder() .Nid(NetworkId.Main) .From(fromAddress) .To(toAddress) .Value(BigInteger.Parse("0de0b6b3a7640000", NumberStyles.AllowHexSpecifier)) .StepLimit(BigInteger.Parse("012345", NumberStyles.AllowHexSpecifier)) .Timestamp(BigInteger.Parse("0563a6cf330136", NumberStyles.AllowHexSpecifier)) .Nonce(BigInteger.Parse("1")) .Build(); IWallet wallet = KeyWallet.Load(new Bytes(SampleKeys.PrivateKeyString)); var signedTransaction = new SignedTransaction(transaction, wallet); var iconService = new IconService(provider.Object); await iconService.SendTransaction(signedTransaction); var expected = "xR6wKs+IA+7E91bT8966jFKlK5mayutXCvayuSMCrx9KB7670CsWa0B7LQzgsxU0GLXaovlAT2MLs1XuDiSaZQE="; provider.Verify(x => x.SendRequestAsync(It.Is <Request>(request => RequestCheckTestSendIcxTransaction(request, expected)), It.IsAny <IRpcConverter <Bytes> >()), Times.Once); }
public byte[] GeneratePublicKey(byte[] privateKey) { var pkBytes = new Bytes(privateKey); var wallet = KeyWallet.Load(pkBytes); return(wallet.GetPublicKey().ToByteArray()); }
public void TestLoadWithPrivateKey() { var pkBytes = new Bytes(SampleKeys.PrivateKeyString); var wallet = KeyWallet.Load(pkBytes); var loadedAddress = wallet.GetAddress(); Assert.Equal(new Address(SampleKeys.Address), loadedAddress); }
public void TestCreate() { var wallet = KeyWallet.Create(); Assert.True(IconKeys.IsValidAddress(wallet.GetAddress().ToString())); IWallet loadWallet = KeyWallet.Load(wallet.GetPrivateKey()); Assert.Equal(wallet.GetAddress(), loadWallet.GetAddress()); }
public IconServiceVCRTest(ITestOutputHelper testOutputHelper) { _testOutputHelper = testOutputHelper; //var pk1 = Environment.GetEnvironmentVariable("PK1"); _scoreAddress = new Address("cxcc7ef86cdae93a89b6c08206a7962bcb9abb7bf4"); var httpClient = new HttpClient(); _iconService = new IconService(new HttpProvider(httpClient, Url)); _wallet = KeyWallet.Load(new Bytes(PrivateKeyString)); _secretWallet = null; //KeyWallet.Load(new Bytes(pk1)); }
public void TestSignMessageNullException() { var wallet = KeyWallet.Load(new Bytes(SampleKeys.PrivateKeyString)); byte[] message = null; Assert.Throws <ArgumentException>(() => { // ReSharper disable once ExpressionIsAlwaysNull wallet.Sign(message); }); }
private void TestSignMessage() { const string message = "0xefc935bb4a944ccf02b4ff4a601f5bb47d60b55e21aa9683aaf17bf1d79129ae"; const string expected = "0x7e224bd64f2fa18a340acda4f7e567f87d9c8e65e523759d00034453b92be2d55ab206c41bc60f831055ae2f49ab40431a209a87f09a965492a84ab1f0b885c001"; var privateKey = new Bytes(SampleKeys.PrivateKeyString); var wallet = KeyWallet.Load(privateKey); var byteArray = new Bytes(message).ToByteArray(); var sign = wallet.Sign(byteArray); var hexString = new Bytes(sign).ToHexString(true); Assert.Equal(expected, hexString); }
public void TestRequestSerialization() { var wallet = KeyWallet.Load(new Bytes(SampleKeys.PrivateKeyString)); var @params = new RpcObject.Builder() .Put("address", new RpcValue(wallet.GetAddress())) .Build(); //var request = new Request(requestId, "icx_getBalance", @params); var json = JsonConvert.SerializeObject(@params, Formatting.Indented, new RpcItemSerializer()); Assert.True(json.Length > 2); }
//This is needed to run tests locally! public BaseTest() { #region LoadEnvVariables try { using (var file = File.OpenText("Properties\\launchSettings.json")) { var reader = new JsonTextReader(file); var jObject = JObject.Load(reader); var variables = jObject .GetValue("profiles") //select a proper profile here .SelectMany(profiles => profiles.Children()) .SelectMany(profile => profile.Children <JProperty>()) .Where(prop => prop.Name == "environmentVariables") .SelectMany(prop => prop.Value.Children <JProperty>()) .ToList(); foreach (var variable in variables) { Environment.SetEnvironmentVariable(variable.Name, variable.Value.ToString()); } } } catch (Exception e) { Console.WriteLine(e); throw; } #endregion LoadEnvVariables var secretKey1 = Environment.GetEnvironmentVariable("PrivateKey"); var secretKey2 = Environment.GetEnvironmentVariable("PrivateKey2"); _settingsUrl = Environment.GetEnvironmentVariable("SettingsUrl"); _secretWallet = KeyWallet.Load(new Bytes(secretKey1)); _toWallet = KeyWallet.Load(new Bytes(secretKey2)); _container = TestModulesRegistrator.GetContainer(_settingsUrl).Result; }
public async Task TestTransferTokenTransaction() { var provider = GetMockProvider <Bytes>(); var fromAddress = new Address("hxbe258ceb872e08851f1f59694dac2558708ece11"); var scoreAddress = new Address("cx982aed605b065b50a2a639c1ea5710ef5a0501a9"); var toAddress = new Address("hx5bfdb090f43a808005ffc27c25b213145e80b7cd"); // ReSharper disable once ObjectCreationAsStatement new Address("hxbe258ceb872e08851f1f59694dac2558708ece11"); var @params = new RpcObject.Builder() .Put("_to", new RpcValue(toAddress)) .Put("_value", new RpcValue(BigInteger.Parse("1"))) .Build(); var transaction = TransactionBuilder.CreateBuilder() .Nid(NetworkId.Main) .From(fromAddress) .To(scoreAddress) .StepLimit(BigInteger.Parse("12345", NumberStyles.HexNumber)) .Timestamp(BigInteger.Parse("563a6cf330136", NumberStyles.HexNumber)) .Nonce(BigInteger.Parse("1")) .Call("transfer") .Params(@params) .Build(); IWallet wallet = KeyWallet.Load(new Bytes(SampleKeys.PrivateKeyString)); var signedTransaction = new SignedTransaction(transaction, wallet); var iconService = new IconService(provider.Object); await iconService.SendTransaction(signedTransaction); const string expected = "ITpAdh3bUV4Xj0WQIPlfhv+ppA+K+LtXqaYMjnt8pMwV7QJwyZNQuhH2ljdGPR+31wG+GpKEdOEuqeYOwODBVwA="; provider.Verify(x => x.SendRequestAsync(It.Is <Request>(request => RequestCheckTestTransferTokenTransaction(request, expected)), It.IsAny <IRpcConverter <Bytes> >()), Times.Once); }
public SignVerificationTest() { wallet = KeyWallet.Load(new Bytes(SampleKeys.PrivateKeyString)); }
public SignedTransactionTest() { wallet = KeyWallet.Load(new Bytes(SampleKeys.PrivateKeyString)); }