public async Task GetOutputScript() { // Paymail server configuration for [email protected]: // [email protected] // Generate public addresses beneath this derivation path: M/0 // Master public key for derivations (M): xpub661MyMwAqRbcEaJYm4GjL9XnYrwbTR7Rug3oZ66juJHMXYwCYD4Z3RVgyoPhhpU97Ls9fACV3Y7kYqMPxGAA8XWFdPpaXAj3qb8VHnRMU8c // Public key returned by GetPubKey("*****@*****.**"): M/0/{int.MaxValue} // Private key for that public key: m/0/{int.MaxValue} // var key = KzElectrumSv.GetMasterPrivKey("<replace with actual wallet seed>").Derive($"0/{int.MaxValue}").PrivKey; var key = PrivateKey.FromBase58("KxXvocKqZtdHvZP5HHNShrwDQVz2muNPisrzoyeyhXc4tZhBj1nM"); var r = new PaymailClient(); var s = await r.GetOutputScript(key, "*****@*****.**", "*****@*****.**"); Assert.True(s.Length > 0); }
public void FromHexAndB58() { const string hex = "906977a061af29276e40bf377042ffbde414e496ae2260bbf1fa9d085637bfff"; const string b58 = "L24Rq5hPWMexw5mQi7tchYw6mhtr5ApiHZMN8KJXCkskEv7bTV61"; var key1 = new PrivateKey(hex); var key2 = PrivateKey.FromBase58(b58); Assert.Equal(key1, key2); Assert.Equal(hex, key1.ToHex()); Assert.Equal(b58, key1.ToBase58().ToString()); Assert.Equal(b58, key1.ToString()); Assert.Equal(hex, key2.ToHex()); Assert.Equal(b58, key2.ToBase58().ToString()); Assert.Equal(b58, key2.ToString()); }
public void SignatureTest2() { var paymail = "*****@*****.**"; var amount = "500"; var when = "2019-03-01T05:00:00.000Z"; var purpose = "some reason"; var message = $"{paymail}{amount}{when}{purpose}"; var privkey = PrivateKey.FromBase58("KxWjJiTRSA7oExnvbWRaCizYB42XMKPxyD6ryzANbdXCJw1fo4sR"); var signature = privkey.SignMessageToBase64(message); Assert.Equal("H1CV5DE7tya0jM2ZynueSTRgkv4CpNY9/pz5lK5ENdGOWXCt/MTReMcQ54LCRt4ogf/g53HokXDpuSfc1D5gBUE=", signature); var pub = privkey.CreatePublicKey(); var ok = pub.VerifyMessage(message, signature); Assert.True(ok); }