We are using same code, which worked fine and stopped with update to v21. We use set tx fee before sending any tx.
request
{"method":"settxfee","params":[0.001020],"id":63824,"jsonrpc":"2.0","error":null}
response
{"result":true,"error":null,"id":63824}
right after that we sent btc with
{"method":"sendmany","params":["",{"3FMA2eRqd6ofp1sSifNXNNWPHzp5UW8rH2":0.04543},1,"",null,true],"id":63825,"jsonrpc":"2.0","error":null}
which resulted in:
(our custom response, but in short tx size is 223 bytes. fee 0.00014484 BTC, 65 sat/byte, when it should be 102 sat/byte)
{ "hash" : "969b9f19446145587af06eb87881fcf89d4e171606931959c4a731086ed5584e", "error" : null, "transaction" : { "javaClassName" : "cz.simplecoin.corewallets.http.dto.CryptoTransactionOutputDTO", "address" : "3FMA2eRqd6ofp1sSifNXNNWPHzp5UW8rH2", "amount" : -0.04543000, "outputId" : 1, "direction" : "Outgoing", "hash" : "969b9f19446145587af06eb87881fcf89d4e171606931959c4a731086ed5584e", "currency" : "BTC", "confirmations" : 0, "blockHeight" : null, "blockOrder" : null, "walletTimestamp" : 1618902716, "comment" : null, "walletName" : "BTC-Wallet", "fee" : -0.00014484, "fromAddress" : null, "fetchTimestampMillis" : 1618902716179, "zombie" : false, "walletOrder" : -1, "uuid" : "6fbae8c4-f314-5d96-9195-7f87f0b6f48b", "javaClassName" : "cz.simplecoin.corewallets.http.dto.CryptoTransactionOutputDTO" }, "javaClassName" : "cz.simplecoin.corewallets.http.dto.SendSingleDTO" }
all transactions we send has fee rate 65sat/byte, i know there is new fee params using sat/byte instead btc/kb, but this should not be the case according doc.
we have righ now chain of 100 unconfimed transactions and customers go insane
