Message not found - General - Algorand

Message not found

post by Obi on Jan 9, 2023

I tried to manually build and submit a transaction to the node but got this error {'message': 'Not Found'}.

code for reference

import base64

import requests
from algosdk.encoding import msgpack_encode
from algosdk.future.transaction import PaymentTxn, SuggestedParams
from algosdk.util import algos_to_microalgos

key0 = "wf6MGq9+IOzzOKpVIGjZiwaHsEA51FFqM3vt8TRdNVJUEZ23cYux3hBE+2MhrLFN4ezLa1osSa9YT63j1bP5zg=="
acc0 = "KQIZ3N3RROY54ECE7NRSDLFRJXQ6ZS3LLIWETL2YJ6W6HVNT7HHIW35NGE"

acc1 = "EFK7G6BMJTQYNPHUAEWGYMMUDJLDDML2F3UI2LSOUCTGQKZT5L5NMG2AHA"

d = requests.get("https://node.testnet.algoexplorerapi.io/v2/transactions/params")
f = d.json()
params = SuggestedParams(
            f["fee"],
            f["last-round"],
            f["last-round"] + 1000,
            f["genesis-hash"],
            f["genesis-id"],
            False,
            f["consensus-version"],
            f["min-fee"],
)

txn = PaymentTxn(acc0, params, acc1, algos_to_microalgos(1), note="")
stxn = txn.sign(key0)
encoded = base64.b64decode(msgpack_encode(stxn))

header = {"Content-Type": "application/x-binary"}

send = requests.post(f"https://node.testnet.algoexplorerapi.io/v2/transactions/{encoded}", headers=header)
print(send.json())

post by fabrice on Jan 9, 2023

One issue is the following:

You need to post the transactions to the endpoint https://node.testnet.algoexplorerapi.io/v2/transactions as the body of the POST.

Not include the transactions in the URL, as the code

send = requests.post(f"https://node.testnet.algoexplorerapi.io/v2/transactions/{encoded}", headers=header)

does.

In general, we strongly recommend using the SDK to send the requests, rather than manually doing it. You can find a full example there: Your First Transaction - Algorand Developer Portal


post by Obi on Jan 10, 2023

Hello Fabrice, Happy New Year. I was reworking the backend code for Mint Engine and we are trying to do away with the need for x-api-keys (hope this isn’t a bad thing).

I am using the python requests lib pip install requests.

Thanks for your feedback, I’ve fixed the error.


post by fabrice on Jan 10, 2023

This is ok not requiring them depending on your use case.

However, the SDK does not require them either.

See for example:

from algosdk.v2client import algod

algod_address = "https://node.testnet.algoexplorerapi.io"
algod_token = ""

algod_client = algod.AlgodClient(algod_token, algod_address)
print(algod_client.status())

post by Obi on Jan 10, 2023

I didn’t know this🤦. Thanks, thanks a lot🙇


post by Obi on Jan 11, 2023

but the documentation used purestake api, which is why I thought it was enforced by the sdk