Python-Cardano / pycardano

A lightweight Cardano library in Python
https://pycardano.readthedocs.io
MIT License
215 stars 67 forks source link

withdraw rewards error #382

Closed HackZhong closed 1 week ago

HackZhong commented 1 week ago

I wanted to withdraw the rewards but got this error, how to resolve this?

pycardano.exception.TransactionFailedException: Failed to submit transaction. Error code: 400. Error message: {"contents":{"contents":{"contents":{"era":"ShelleyBasedEraConway","error":["ConwayCertsFailure (WithdrawalsNotInRewardsCERTS (fromList [(RewardAccount {raNetwork = Testnet, raCredential = KeyHashObj (KeyHash {unKeyHash = \"56d8fe4072c5c9599c88a3c3f54a422609b889192fd6d5cf19fe36f6\"})},Coin 1000000)]))"],"kind":"ShelleyTxValidationError"},"tag":"TxValidationErrorInCardanoMode"},"tag":"TxCmdTxSubmitValidationError"},"tag":"TxSubmitFail"}

This is the code, based on this case

tx_builder = TransactionBuilder(chain_context, [RandomImproveMultiAsset([0, 0])])
sender = Address(payment_verification_key.hash(), payment_verification_key.hash(), network=Network.TESTNET)
# sender = "addr_test1qptd3ljqwtzujkvu3z3u8a22ggnqnwyfryhad4w0r8lrdajkmrlyquk9e9veez9rc0655s3xpxugjxf06m2u7x07xmmqfmmh8m"
stake_address = Address.from_primitive("stake_test1uptd3ljqwtzujkvu3z3u8a22ggnqnwyfryhad4w0r8lrdasnxpqxx")
tx_builder.add_input_address(str(sender)).add_output(
        TransactionOutput.from_primitive([str(sender), 5000000])
    )
withdrawals = Withdrawals({bytes(stake_address): 1000000})
tx_builder.withdrawals = withdrawals
signed_tx = tx_builder.build_and_sign(
    [payment_signing_key, payment_signing_key],
    sender,
)
chain_context.submit_tx(signed_tx)
HackZhong commented 1 week ago

reward amount is wrong, should be the current actual amount