private void SetData(byte[] vchData) { this.vchData = vchData; #if HAS_SPAN if (!(_Network.GetVersionMemory(Type, false) is ReadOnlyMemory <byte> v)) { throw new FormatException("Invalid " + this.GetType().Name); } this.vchVersion = v; Span <byte> buffer = vchVersion.Length + vchData.Length is int length && length > 256 ? new byte[length] : stackalloc byte[length]; this.vchVersion.Span.CopyTo(buffer); this.vchData.CopyTo(buffer.Slice(this.vchVersion.Length)); wifData = _Network.NetworkStringParser.GetBase58CheckEncoder().EncodeData(buffer); #else this.vchVersion = _Network.GetVersionBytes(Type, false); wifData = _Network.NetworkStringParser.GetBase58CheckEncoder().EncodeData(vchVersion.Concat(vchData).ToArray()); #endif if (!IsValid) { throw new FormatException("Invalid " + this.GetType().Name); } }