ar-io / arns-service

Koa microservice that leverages Warp to support the ArNS Portal and ar.io observers.
https://api.arns.app
GNU Affero General Public License v3.0
19 stars 4 forks source link

fix(manifests): properly handle contract-manifest errors when contract-ids not found #51

Closed dtfiedler closed 10 months ago

dtfiedler commented 10 months ago

Testing:

Before

debug: Fetching contract state {"contractTxId":"cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","method":"GET","path":"/v1/contract/cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","timestamp":"2023-10-24T17:30:16.627Z","trace":"c6ddcb"}
debug: Reading through to contract manifest... {"contractTxId":"cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","method":"GET","path":"/v1/contract/cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","timestamp":"2023-10-24T17:30:16.627Z","trace":"c6ddcb"}
error: Failed to get contract manifest! {"method":"GET","path":"/v1/contract/cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","stack":"Error\n    at Transactions.get (/Users/dylanfiedler/Documents/ario/arns/arns-service/src/common/transactions.ts:101:11)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async ReadThroughPromiseCache.readThroughToContractManifest [as readThroughFunction] (/Users/dylanfiedler/Documents/ario/arns/arns-service/src/api/warp.ts:389:33)","timestamp":"2023-10-24T17:30:17.056Z","trace":"c6ddcb","type":"TX_INVALID"}
error: Error processing request. {"error":"","method":"GET","path":"/v1/contract/cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","timestamp":"2023-10-24T17:30:17.056Z","trace":"c6ddcb"}
error: Unknown error returned to client. {"headers":{"Access-Control-Allow-Origin":"","vary":"Origin"},"method":"GET","path":"/v1/contract/cem9chMgXjcAX4WdLiDDqNryhgKK5bJeNUesyL-kK_M","stack":"Error\n    at Transactions.get (/Users/dylanfiedler/Documents/ario/arns/arns-service/src/common/transactions.ts:101:11)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async ReadThroughPromiseCache.readThroughToContractManifest [as readThroughFunction] (/Users/dylanfiedler/Documents/ario/arns/arns-service/src/api/warp.ts:389:33)","timestamp":"2023-10-24T17:30:17.056Z","trace":"c6ddcb","type":"TX_INVALID"}

After

debug: Fetching contract state {"contractTxId":"iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","method":"GET","path":"/v1/contract/iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","timestamp":"2023-10-24T17:32:35.962Z","trace":"d1a14d"}
debug: Reading through to contract manifest... {"contractTxId":"iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","method":"GET","path":"/v1/contract/iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","timestamp":"2023-10-24T17:32:35.962Z","trace":"d1a14d"}
error: Failed to get contract manifest! {"method":"GET","path":"/v1/contract/iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","stack":"Error\n    at Transactions.get (/Users/dylanfiedler/Documents/ario/arns/arns-service/src/common/transactions.ts:101:11)\n    at processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async ReadThroughPromiseCache.readThroughToContractManifest [as readThroughFunction] (/Users/dylanfiedler/Documents/ario/arns/arns-service/src/api/warp.ts:385:33)","timestamp":"2023-10-24T17:32:36.112Z","trace":"d1a14d","type":"TX_INVALID"}
error: Error processing request. {"error":"Contract not found. Error","method":"GET","path":"/v1/contract/iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","timestamp":"2023-10-24T17:32:36.112Z","trace":"d1a14d"}
debug: Completed request. {"method":"GET","path":"/v1/contract/iXMGr0Y_21LWJAOGXhJ9k6KCOkJN3CCv8fxdE5HsVrc","responseTime":"151ms","timestamp":"2023-10-24T17:32:36.112Z","trace":"d1a14d"}