Пример #1
0
        public BitcoinScriptAddress(string base58, Network expectedNetwork)
            : base(Validate(base58, expectedNetwork), expectedNetwork)
        {
            var decoded = expectedNetwork.NetworkStringParser.GetBase58CheckEncoder().DecodeData(base58);

            if (expectedNetwork.GetVersionBytes(Base58Type.SCRIPT_ADDRESS, false) is byte[] v)
            {
                _Hash = new ScriptId(new uint160(decoded.Skip(v.Length).ToArray()));
            }
            else
            {
                throw expectedNetwork.Base58NotSupported(Base58Type.SCRIPT_ADDRESS);
            }
        }
Пример #2
0
        public BitcoinPubKeyAddress(string base58, Network expectedNetwork)
            : base(Validate(base58, expectedNetwork), expectedNetwork)
        {
            var decoded = expectedNetwork.NetworkStringParser.GetBase58CheckEncoder().DecodeData(base58);

            if (expectedNetwork.GetVersionBytes(Base58Type.PUBKEY_ADDRESS, false) is byte[] bytes)
            {
                _KeyId = new KeyId(new uint160(decoded.Skip(bytes.Length).ToArray()));
            }
            else
            {
                throw expectedNetwork.Base58NotSupported(Base58Type.PUBKEY_ADDRESS);
            }
        }