RE: Steem Api Help???

You are viewing a single comment's thread from:

Steem Api Help???

in steemdev •  7 years ago 

Any help you can give is much appreciated. Here is the code, I haven't changed any of the internals of the library, and I have used Ditch you can find the link here

            userPrivateKeys = new List<byte[]>
            {
                Base58.GetBytes(WIF)
            };

Convert the keys into a byte array

private static byte[] Base58CheckDecode(string data)
        {
            var s = Decode(data);
            var dec = CutLastBytes(s, 4);

            //var checksum = SHA256.Instance.DoubleHash(dec);
            //for (int i = 0; i < 4; i++)
            //    Assert.IsTrue(checksum[i] == s[s.Length - 4 + i]);

            return CutFirstBytes(dec, 1);
        }

        private static byte[] Decode(string base58)
        {
            // Decode Base58 string to BigInteger 
            BigInteger intData = 0;
            for (var i = 0; i < base58.Length; i++)
            {
                var digit = Digits.IndexOf(base58[i]); //Slow
                if (digit < 0)
                    throw new FormatException($"Invalid Base58 character `{base58[i]}` at position {i}");
                intData = intData * 58 + digit;
            }

            // Encode BigInteger to byte[]
            // Leading zero bytes get encoded as leading `1` characters
            var leadingZeroCount = base58.TakeWhile(c => c == '1').Count();
            var leadingZeros = Enumerable.Repeat((byte)0, leadingZeroCount);
            var bytesWithoutLeadingZeros =
                intData.ToByteArray()
                .Reverse()// to big endian
                .SkipWhile(b => b == 0);//strip sign byte
            var result = leadingZeros.Concat(bytesWithoutLeadingZeros).ToArray();
            return result;
        }

        private static byte[] CutFirstBytes(byte[] source, int cutCount)
        {
            var rez = new byte[source.Length - cutCount];
            Array.Copy(source, cutCount, rez, 0, rez.Length);
            return rez;
        }

Using the Cryptography.ECDSA library to sign the payload

var sig = Secp256k1Manager.SignCompressedCompact(data, userPrivateKey);

RPC Call Message

{"method":"call","params":[3,"broadcast_transaction",[{"ref_block_num":34752,"ref_block_prefix":2723778811,"expiration":"2017-08-01T09:50:54","operations":[["vote",{"voter":"nosajj","author":"jerrybanfield","permlink":"90 -paths-to-profit-online","weight":10000}]],"extensions":[],"signatures":["SIGNATURE"]}]],"jsonrpc":"2.0","id":1}

The returned error message

13 N5boost16exception_detail10clone_implINS0_19error_info_injectorISt12out_of_rangeEEEE: unknown key
unknown key
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Hi, I have the same error. What key do I use? Private key for posting? If so this doesn't seem to work.