2 using System.Collections.Generic;
5 using System.Threading.Tasks;
13 PUBKEY_ADDRESS_TEST = 111,
14 SCRIPT_ADDRESS_TEST = 196
17 public class CNovacoinAddress
19 private byte nVersion;
20 private List<byte> addrData;
22 public CNovacoinAddress(byte nVersionIn, IEnumerable<byte> addrDataIn)
24 nVersion = nVersionIn;
25 addrData = addrDataIn.ToList();
28 public CNovacoinAddress(CKeyID keyID)
30 nVersion = (byte)AddrType.PUBKEY_ADDRESS;
31 addrData = new List<byte>(keyID.hashBytes);
34 public CNovacoinAddress(CScriptID scriptID)
36 nVersion = (byte)AddrType.SCRIPT_ADDRESS;
37 addrData = new List<byte>(scriptID.hashBytes);
42 int nExpectedSize = 20;
44 switch ((AddrType) nVersion)
46 case AddrType.PUBKEY_ADDRESS:
47 nExpectedSize = 20; // Hash of public key
49 case AddrType.SCRIPT_ADDRESS:
50 nExpectedSize = 20; // Hash of CScript
52 case AddrType.PUBKEY_ADDRESS_TEST:
55 case AddrType.SCRIPT_ADDRESS_TEST:
62 return addrData.Count == nExpectedSize;
65 public override string ToString()
67 List<byte> r = new List<byte>();
72 return AddressTools.Base58EncodeCheck(r.ToArray());